【渗透实战】sqlmap_修改tamper脚本_绕过WAF_第二期

作者:Kali_MG1937
CSDN博客:ALDYS4
QQ:3496925334
未经许可,禁止转载

老样子,google了一个asp注入点
但有waf,拦截关键字
【渗透实战】sqlmap_修改tamper脚本_绕过WAF_第二期_第1张图片

尝试绕过

GET 结果
.asp?id=1 and true# 拦截
.asp?id=1 %61nd true# 不拦截

对关键字中的部分字符进行Unicode编码成功绕过
利用charencode.py脚本带入sqlmap
sqlmap -u url --tamper=charencode.py -v 3
可是没有跑出注入点来
查看debug日志
【渗透实战】sqlmap_修改tamper脚本_绕过WAF_第二期_第2张图片
返回的状态码全是999
明显是被拦截了
奇怪,为什么刚才对关键字编码没有拦截

进行手工注入分析原因
把and这个关键字进行编码

GET 结果
.asp?id=1 %61%6e%64 true# 被某主机waf拦截!

以此推测
很可能waf对unicode敏感,所以第一次绕过时只对关键字中的一部分进行编码,waf中配置的正则规则就无法匹配到关键字
如果关键字全部使用unicode编码,waf中专门匹配unicode关键字的正则规则就能匹配到危险字符

再次尝试绕过

既然waf规则对unicode敏感,仅仅编码其中一个关键字就无法匹配,那么很可能这个waf也有其他缺陷
我们已经知道此网站的web应用为ASP.NET,那么我们是否可以利用这个应用的特性来调戏waf呢?
已知此web应用在接收请求时,会把无用的%过滤掉
那么,在关键字中掺杂无用的百分号,waf是否可以匹配得到呢?

GET 结果
.asp?id=1 a%nd 1=1 SQL语句成功查询

【渗透实战】sqlmap_修改tamper脚本_绕过WAF_第二期_第3张图片
成功绕过!
sqlmap -u url --tamper=percentage.py
仍然有999的状态码返回,又被拦截了
【渗透实战】sqlmap_修改tamper脚本_绕过WAF_第二期_第4张图片
是的,还有括号被拦截了
但经过多次测试证明只要对括号进行编码就能绕过waf
可percentage.py和charencode.py一起使用会使payload变成下面这样

预想的payload 在同时使用这两个脚本时
a%n%d 1=%u0028%1%%u0029 a%25n%25d 1=%25u0028%251%25u0029

是的,这样的payload根本无法被服务器处理
那么只能对tamper脚本进行修改

修改脚本

我选取percentage.py这个脚本进行修改
通读这个脚本,是把payload拆分成一个个独立的字符
对每个字符进行判断,然后再在字符后加上%
【渗透实战】sqlmap_修改tamper脚本_绕过WAF_第二期_第5张图片
只需向里面再插入几个判断:
如果字符是(就替换成%28
如果是)就替换成%29
保存为 hack.py

开始注入

直接在参数里带上这个脚本
【渗透实战】sqlmap_修改tamper脚本_绕过WAF_第二期_第6张图片
跑出注入点
【渗透实战】sqlmap_修改tamper脚本_绕过WAF_第二期_第7张图片
【渗透实战】sqlmap_修改tamper脚本_绕过WAF_第二期_第8张图片
爆库成功
【渗透实战】sqlmap_修改tamper脚本_绕过WAF_第二期_第9张图片

你可能感兴趣的:(渗透实战)