前言
在渗透测试中,经常面临各类Web应用防火墙(WAF)的挑战。因此,一款优秀的绕过WAF的渗透测试工具对于渗透测试人员来说尤为重要。在这篇文章中,我们向大家推荐一款实用的WAF绕过工具,希望能在日常渗透测试中提供帮助。
简介
WAFNinja 是一款用Python编写的命令行工具,旨在协助渗透测试人员摆脱繁琐的手动输入。具有强大的扩展性,适用于团队协作。WAFNinja通过自动化步骤帮助渗透测试者绕过WAF,这些步骤对于绕过输入验证至关重要。工具的设计目标是易于扩展、易于使用,并且适用于团队环境。WAFNinja附带了丰富的载荷和模糊字符串,存储在本地数据库中。
下载安装
下载方式:
- GitHub下载地址:https://github.com/khalilbijjou/WAFNinja
使用git clone命令:
<code>git clone https://github.com/khalilbijjou/WAFNinja</code>
或者直接用浏览器下载并解压到本地文件。
安装:
直接进入该文件夹,输入以下命令:
python wafninja.py -h
如果显示正常的文档说明,表示安装成功。
如果出现类似“ImportError: No module named progressbar”,请自行安装相关的包。
例如,可以使用以下命令:
<code>pip install progressbar</code>
使用
查看帮助信息:
<code>python wafninja.py -h</code>
或者
<code>python wafninja.py fuzz -h</code>
可以替换fuzz
为bypass
、insert-fuzz
、insert-bypass
、set-db
等关键词,以查看相应的帮助信息。
Fuzz是什么?
通常,Fuzz是一种用于破解软件的暴力方法,通过大量测试用例一个个尝试,以找出可能存在问题的地方。
Bypass就是绕过。
使用示例:
Fuzz(模糊测试):
bashCopy code
python wafninja.py fuzz -u “http://www.target.com/index.php?id=FUZZ“ -c “phpsessid=value” -t xss -o output.html
结果如下:
- 不被WAF检测:
- 被检测到:
Bypass(绕过WAF):
<code>python wafninja.py bypass -u “http://www.target.com/index.php“ -p “Name=PAYLOAD&Submit=Submit” -c “phpsessid=value” -t xss -o output.html</code>
Insert-fuzz(用户自定义模糊测试载荷):
<code>python wafninja.py insert-fuzz -i select -e select -t sql</code>
参数介绍
其他参数:
{fuzz, bypass, insert-fuzz, insert-bypass, set-db}
:操作类型,分别对应检查WAF允许通过的符号和关键词、从数据库中发送载荷到目标、添加一个模糊字符串、添加一个载荷到绕过列表、设置另一个数据库文件。
可选参数:
-h, --help
:显示帮助信息并退出。-u URL
:目标URL,使用关键词FUZZ
指定模糊测试的位置。-p POST PARAMETER
:通过post参数发送模糊测试载荷。-c COOKIE
:HTTP Cookie头部。-t TYPE
:载荷的类型(sql|xss)。-d DELAY
:每个请求的等待时间,默认为0秒。-o OUTPUT FILE
:保存输出到HTML文件。--proxy PROXY
:使用代理,格式为IP:PORT。--prefix PROXY
:增加前缀。--postfix PROXY
:增加后缀。-w WAF
:发送特定WAF的有效载荷,默认为generic。-e EXPECTED
:目标站点的预期输出,如果输入是编码的或类似的,请使用此选项。-p PATH
:SQLite数据库的路径,默认位置为“db/db.sqlite”。
暂无评论内容