【网络空间安全】SQL注入检测绕过

大小写绕过

拦截了union,那就使用Union UnIoN

编码绕过

WAF检测关键字,用%55也就是U的16进制编码来代替U,union写成%55nION,结合大小写也可以绕过一些WAF

注释绕过

使用于WAF只是过滤了一次危险的语句,而没有阻断整个查询

/?id=1+union+select +1,2,3/*

对于这条查询,WAF过滤了一次union和select,在之前再写一个注释语句,让他把注释里面的过滤掉,并不影响我们正常查询
绕过语句:

/?id=1/*union*/union/*select/select+1,2,3/*

分隔重写绕过

适用于那种WAF采用了正则表达式的情况,会检测所有的敏感字

/?id=1+un/**/ion+sel/**/ect+1,2,3-

至于重写绕过,适用于WAF过滤了一次的情况,和我们上传aaspsp码的原理一样,可以写成Ununionion,过滤一次还有一次

/?id=1 ununionion select 1,2,3-

同功能函数替换

Substring() 可以用 mid(), substr() 这些函数来替换,都是用来取字符串的某一位字符的

Ascii() 编码可以用 hex() , bin() 也就是用16进制和二进制编码替换

时间盲注中的Benchmark() 可以用sleep() 来替换


SQLMap中有一个tamper目录,主要存放的是waf绕过脚本,比如:base64encode.py、between.py、greatest.py【存在于usr/share/sqlmap/tamper目录下】


等号被过滤 equaltolike.py() like代替等号

example:
*Input : select* from users where id = 1
*output : select * from users where id like 1

替换字符和单引号被过滤 apostrophenullencode.py()

example:
("1 and '1' ='1""1 and %00%271%00%27 = %00%271"
posted @ 2019-10-01 11:33  Roko&Basilisk  阅读(164)  评论(0编辑  收藏  举报