这里是某个搜索框的数据包,输入单引号返回500
两个单引号返回200但是无数据
经过各种测试之后插入下面这个语句返回了200(这里提前说明下,当参数的值不是整数会无数据,为整数则会返回数据)
为710则返回了500,这个exp函数就是计算e的几次方,超过709这个数就会特别大导致数据库报错
这里使用case when语句,当我控制条件为1=1时候竟然404了,猜测是过滤了一些东西
后来经过测试发现是过滤了加号,这里经过各种测试都返回404(直接使用/**/符号也会404),但是用参数污染试了试,发现可以全部代入进去,于是构造了下面的数据包,使用注释符号来代替了空格,发现回显了500不是404,说明语句没有问题
让条件为1=2,返回了数据
完整注用户语句
'||case/**/when/**/ASCII(SUBSTR(user,1,1))=1/**/then/**/exp(20)/**/else/**/1/**/end||'
/**/是过滤了的,挨个从中间分开
后续正常跑就可以,规则只需要注用户就行,就没有注表
原文始发于微信公众号(起凡安全):一次简单的sql注入挖掘绕过记录
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论