WAFNinja-一款绕过WAF的渗透工具

WAFNinja是一款采用Python编写的命令行工具,旨在帮助渗透测试人员绕过WAF。该工具支持HTTP连接、GET/POST请求,并可通过cookie访问授权页面。本文介绍其下载、安装及使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0x00 前言

        在我们平时做渗透测试的时候,难免会遇到各种WAF的阻挡。这时一款良好的绕过WAF的渗透测试工具就显得很受渗透测人员欢迎,在这里我们推荐一款绕过WAF的实用渗透工具,希望对大家平时做渗透有所帮助。

0x01简介

      WAFNinja 是一款采用python编写的命令行工具。它通过自动化步骤来帮助渗透测试者来绕过WAF,而这些步骤对于绕过输入验证来说是必需的。该工具的编写目标是方便扩展、易于使用和在团队环境下也可使用。众多的载荷和模糊字符串是存储在本地的数据库,并且伴随着该工具一同发布出来。 WAFNinja 支持HTTP连接、GET/POST请求、可以使用cookie去访问那些只限于授权用户的页面。

0x02 下载安装

1下载方式:

github下载地址:https://github.com/khalilbijjou/WAFNinja

可用git clone https://github.com/khalilbijjou/WAFNinja

 或者直接用浏览器下载并且解压到本地文件。

2 安装

直接进入该文件夹,输入如下命令:

root@kali:~/WAFNinja# python wafninja.py -h

如果出现正常的文档说明,该结果证明安装成功;

如果出现类似“ ImportError: No module named progressbar ”,请自行安装相关的包。

例如本处的解决方式为:root@kali:~/#pip install processbar ( 或者在终端输入:easy_install processbar)

0x03 使用

1 查看帮助信息

root@kali:~/WAFNinja# python wafninja.py -h

root@kali:~/WAFNinja# python wafninja.py fuzz -h # 我们可以把fuzz 换成 bypass,insert-fuzz,insert-bypass,set-db 这几个关键词,便可以查看相对应的帮助信息。

2 使用示例

fuzz(模糊测试):
python wafninja.py fuzz -u "http://www.target.com/index.php?id=FUZZ"  -c "phpsessid=value" -t xss -o output.html 




bypass(绕过WAF):
python wafninja.py bypass -u "http://www.target.com/index.php"  -p "Name=PAYLOAD&Submit=Submit"  -c "phpsessid=value" -t xss -o output.html

insert-fuzz(用户自定义模糊测试载荷):
python wafninja.py insert-fuzz -i select -e select -t sql


其他参数:
  {fuzz,bypass,insert-fuzz,insert-bypass,set-db}
                        
    fuzz                检查WAF允许通过的符号和关键词。.
    bypass              从数据库中发送载荷到目标。
    insert-fuzz         添加一个模糊字符串。
    insert-bypass       添加一个载荷到绕过列表。
    set-db             设置另外一个数据库文件。对于别人分享的相同载荷数据库时,这个特别有用。

可选参数:
  -h, --help            显示帮助信息并且退出。
  -v, --version         显示程序版本号并且推出。

3 备注

0x01中的第一步时,当我们使用root@kali:~/WAFNinja# python wafninja.py fuzz -h

usage: wafninja.py fuzz [-h] -u URL [-p POST PARAMETER] [-c COOKIE] -t TYPE
                        [-d DELAY] [-o OUTPUT FILE]

可选参数:
  -h, --help         显示帮助信息并且退出。
  -u URL             目标URL(例如: "www.target.com/index.php?id=FUZZ")注意:用关键词FUZZ来指定模糊测试的位置。
  -p POST PARAMETER 通过post参数发送模糊测试载荷 Send fuzz through post parameter
  -c COOKIE          HTTP Cookie 头部
  -t TYPE            载荷的类型 [sql|xss]
  -d DELAY           每个请求的等待时间。默认是0秒
  -o OUTPUT FILE    保存输出到html 文件



欢迎大家分享更好的思路,热切期待^^_^^ !!!


作者:k0shl ####一些环境说明: 编译环境:Windows 10 x64 build 1607 项目IDE:VS2013 测试环境:Windows 7 x86、Windows 10 x86 build 1607 参数介绍: "-l" :开启日志记录模式(不会影响主日志记录模块) "-s" :驱动枚举模块 "-d" :打开设备驱动的名称 "-i" :待Fuzz的ioctl code,默认从0xnnnn0000-0xnnnnffff "-n" :在探测阶段采用null pointer模式,该模式下极易fuzz 到空指针引用漏洞,不加则常规探测模式 "-r" :指定明确的ioctl code范围 "-u" :只fuzz -i参数给定的ioctl code "-f" :在探测阶段采用0x00填充缓冲区 "-q" :在Fuzz阶段不显示填充input buffer的数据内容 "-e" :在探测和fuzz阶段打印错误信息(如getlasterror()) "-h" :帮助信息 ####常用Fuzz命令实例: kDriver Fuzz.exe -s 进行驱动枚举,将CreateFile成功的驱动设备名称,以及部分受限的驱动设备名称打印并写入Enum Driver.txt文件中 kDriver Fuzz.exe -d X -i 0xaabb0000 -f -l 对X驱动的ioctl code 0xaabb0000-0xaabbffff范围进行探测及对可用的ioctl code进行fuzz,探测时除了正常探测外增加0x00填充缓冲区探测,开启数据日志记录(如增加-u参数,则只对ioctl code 0xaabb0000探测,若是有效ioctl code则进入fuzz阶段) kDriver Fuzz.exe -d X -r 0xaabb1122-0xaabb3344 -n -l 对X驱动的ioctl code 0xaabb1122-0xaabb3344范围内进行探测,探测时采用null pointer模式,并数据日志记录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值