sqlmap从入门到精通-第七章-7-1 绕过WAF脚本-apostrophemask.py

7.7 sqlmap使用tamper绕过WAF

7.7.1 tamper简介

1. tamper简介
sqlmap压缩包解压后根目录下有个tamper的文件夹,里面有58个python脚本,其中剔除__init__.py这个文件就含有57个脚本,这些脚本对应不同的绕过WAF的功能模块

2. tamper脚本使用
tamper是sqlmap绕过功能,使用方式:python sqlmap.py --tamper="xxoo.py" 或者 python sqlmap.py --tamper="xxoo.py,ooo.py" 同时执行多个tamper脚本

例如:
python sqlmap.py -u http://106.54.35.126/Less-1/?id=1 --dbs --tamper "appendnullbyte.py"

7.7.2 sqlmap WAF检测
WAF检测的方式一般是基于HTTP头进行检测,市面上用于识别WAF有一个比较好的工具wafw00f和sqlmap这两款工具识别

对于识别WAF工具的地址:https://github.com/EnableSecurity/wafw00f

sqlmap使用识别WAF的方式:python sqlmap.py -u http://106.54.35.126/Less-1/?id=1 --identify-waf

7.7.3 tamper绕过WAF脚本列表注释

sqlmap我目前使用的版本是1.4.5.27含有57个绕过WAF的脚本,按照字母顺序来分析,我这里会详细给大家演示,所以这一节会分很多小节来演示,所以会很长

1. apostrophemask.py脚本
通过UTF-8全角字符替换单引号字符,在tamper中对原始payload("1 AND '1'='1") 进行替换,将单引号替换为"%EF%BC%87",相当于%EF%BC%87=' ,这里是适用于所有数据库

实践测试:

测试地址:python sqlmap.py -u http://106.54.35.126/Less-1/?id=1 --dbs --tamper="apostrophemask.py" --proxy="http://127.0.0.1:8080"

 

 测试期间Burpsuite抓包结果:

 

 

使用Burpsuite解码看看

 

 发现结果并不是单引号,作者书中解释的是UTF-8全角字符,大家可以自己去测试,我认为与编码有关。大家可以测试是否是解码之后为单引号,我这里使用sqlmap进行测试,结果大家看到了,根本无法注入,实际是存在SQL注入

 

posted @ 2020-08-03 15:35  皇帽讲绿帽带法技巧  阅读(552)  评论(0编辑  收藏  举报