环境:
phpstudy2018(mysql+apache)
安全狗v4.0专业版
sqllabs靶场
访问正常
报错,根据报错可看出数据被带入执行,即存在注入
再试试 and 1=1
嚯?安全狗。。。。。
拦截
这里直接
用 /**/ 代替 空格
用 /!xxxx/ 代替 xxxx 绕过
如果不明白可以看看这两篇文章,关于MySQL注释的解释
https://www.cnblogs.com/jcydd/p/7289299.html
https://blog.csdn.net/herojuice/article/details/85136922
接下来order by * 测试 字段数
重点讲思路,安全狗防注入是规则上面的防御,看看是哪些关键字触发了防御机制
经过测试可以看到,既不是order 触发了waf,也不是by触发了Waf,而是当order by 这两个词语同时存在的时候,防御机制才会触发,,,,,明白了防御原理,就简单了,
这里直接用这个方法绕过
/**//*!order*//**/%23A%0a%23A%0a%23A%0a%23A%0a%23A%0a%23A%0a%23A%0a%23A%0a/*!by*//**/3/**/--+
%23 是url编码中的 # (也就是MySQL中的行注释符)
%0A 是url编码中的 换行
%23 aaaa -->对应的就是 #aaaa (就相当于把这行给注释掉了)
而再加上%0a(也就是换行符,后面的语句又能成功执行了)
转载:https://blog.csdn.net/weixin_42751423/article/details/105920077
查看评论