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注入
网友评论