参考链接:WFUZZ使用教程
一、简介
Wfuzz是一款为了评估WEB应用而生的Fuzz(Fuzz是爆破的一种手段)工具,它基于一个简单的理念,即用给定的Payload去fuzz。它允许在HTTP请求里注入任何输入的值,针对不同的WEB应用组件进行多种复杂的爆破攻击。比如:参数、认证、表单、目录/文件、头部等等,这款工具在kali里面自带。
二、特性
Wfuzz是用来帮助测试人员评估WEB应用的渗透测试工具。
- 递归(目录发掘)
- Post数据爆破
- 头部爆破
- 输出HTML(详细报告,点击链接查看内容,POST数据也能阅览)
- 多彩输出
- 返回码、词数、行数等等来隐藏结果。
- URL编码
- Cookie
- 多线程
- 代理支持
- 多参数fuzz
三、wfuzz使用
1、wfuzz爆破文件:
wfuzz -w wordlist URL/FUZZ.php
2、wfuzz爆破目录
wfuzz -w wordlist URL/FUZZ
3、遍历枚举参数值
假如你发现了一个未授权漏洞,地址为:http://127.0.0.1/getuser.php?uid=123 可获取uid为123的个人信息uid参数可以遍历,已知123为三位数纯数字,需要从000-999进行遍历,也可以使用wfuzz来完成:
使用payloads模块类中的range模块进行生成。
wfuzz -z range,000-999 http://127.0.0.1/getuser.php?uid=FUZZ
4、POST请求测试
发现一个登录框,没有验证码,想爆破弱口令账户。
请求地址为:http://127.0.0.1/login.phpPOST
请求正文为:username=&password=
使用wfuzz测试:
wfuzz -w userList -w pwdList -d "username=FUZZ&password=FUZ2Z" http://127.0.0.1/login.php
-d参数传输POST请求正文
5、Cookie测试
假设这个漏洞是越权漏洞,要做测试的肯定需要让wfuzz知道你的Cookie才能做测试。
如下命令即可携带上Cookie:
wfuzz -z range,000-999 -b session=session -b cookie=cookie http://127.0.0.1/getuser.php?uid=FUZZ
-b参数指定Cookie,多个Cookie需要指定多次,也可以对Cookie进行测试,仍然使用FUZZ占位符即可。
6、HTTP Headers测试
发现一个刷票的漏洞,这个漏洞需要伪造XFF头(IP)可达到刷票的效果,投票的请求为GET类型,地址为:http://127.0.0.1/get.php?userid=666。那么现在我想给userid为666的朋友刷票,可以使用wfuzz完成这类操作:
wfuzz -z range,0000-9999 -H "X-Forwarded-For: FUZZ" http://127.0.0.1/get.php?userid=666
-H指定HTTP头,多个需要指定多次(同Cookie的-b参数)
7、测试HTTP请求方法(Method)
想测试一个网站(http://127.0.0.1/)支持哪些HTTP请求方法
使用wfuzz:
wfuzz -z list,"GET-POST-HEAD-PUT" -X FUZZ http://127.0.0.1/
这条命了中多了 -z list
和 -X
参数,-z list
可以自定义一个字典列表(在命令中体现),以-分割;-X参数是指定HTTP请求方法类型,因为这里要测试HTTP请求方法,后面的值为FUZZ占位符。
8、认证
想要测试一个需要HTTP Basic Auth保护的内容可使用如下命令:
wfuzz -z list,"username-password" --basic FUZZ:FUZZ URL
wfuzz可以通过--basec --ntml --digest
来设置认证头,使用方法都一样:
--basec/ntml/digest username:password
9、保存测试结果
wfuzz通过printers
模块来将结果以不同格式保存到文档中,一共有如下几种格式:
raw | `Raw` output format
json | Results in `json` format
csv | `CSV` printer ftw
magictree | Prints results in `magictree` format
html | Prints results in `html` format
将结果以json
格式输出到文件的命令如下:
wfuzz -f outfile,json -w wordlist URL/FUZZ
使用-f
参数,指定值的格式为输出文件位置,输出格式。