工具用了不总结,使用命令很容易生疏,今天就把笔记梳理总结一下。
0x01 简介
WFuzz是用于Python的Web应用程序安全性模糊工具和库。它基于一个简单的概念:它将给定有效负载的值替换对FUZZ关键字的任何引用。是一款很好的辅助模糊测试工具。它允许在HTTP请求里注入任何输入的值,针对不同的WEB应用组件进行多种复杂的爆破攻击。比如:参数、认证、表单、目录/文件、头部等等。
0x02 特性
Wfuzz是用来帮助测试人员评估WEB应用的渗透测试工具。
- 递归(目录发掘)
- Post数据爆破
- 头部爆破
- 输出HTML(详细报告,点击链接查看内容,POST数据也能阅览)
- 多彩输出
- 返回码、词数、行数等等来隐藏结果。
- URL编码
- Cookie
- 多线程
- 代理支持
- 多参数fuzz
在平常的渗透测试中,用好Wfuzz对我们的帮助非常大。
要安装WFuzz,只需使用apt-get install wfuzz
kali里也自带WFuzz
Github:https://github.com/xmendez/wfuzz
0x03 基本使用
使用–h和–help开关分别获取基本和高级帮助用法。
虽然WFuzz自带字典但是还是不够,推荐github上2万star的字典SecLists
常用命令:
--hc 过滤状态码
--sc 需要显示的状态码
-c 带颜色显示
-w 指定使用字典
-z 设置payload 【比如:字典】
-z file,1.txt(以文件形式,导入1.txt)
-z range,1-10(以范围形式,1到10)
-z list,1-2-3-10(列表形式,1,2,3,10)
-t 设置线程 默认10
-s 请求间隔时间
-d 设定POST量
-d “uname=admin&passwd=admin”
-b 设定cookie量
-b “cookie=”
-H 参数来指定HTTP请求的请求头,多次指定多次使用。
-H “User-Agent: firfox”
-f 输出到文件的格式,格式有raw,json,csv,magictree,html
-f /tmp/1,html (将结果输出到tmp目录下的1,以html格式)
-X 设定请求方法
-X GET
-R 递归深度,探测目录很好
递归深度为1也就是说当发现某一个目录存在的时候,在存在目录下再递归一次字典。
-R 1(深度为1)
显示或隐藏信息
使用 --hc --hl --hw --hh 可以隐藏相应结果
--hc 503:隐藏响应码为503的
--hl 20:隐藏响应信息行数为20行的
--hw 30:隐藏响应信息中字数为30的
--hh 50:隐藏响应信息中字符数为50的
使用 --sc --sl --sw --sh 可以特别显示相应结果
--sc 405:显示响应码405
剩下的参考隐藏结果的操作
基础语法:
1.一个典型的Wfuzz命令行执行,指定一个字典有效负载和一个URL,如下所示:
wfuzz -w wordlist/general/common.txt http://testphp.vulnweb.com/FUZZ#
用FUZZ占位表示要测试的地方。
2.测试LFI漏洞可读取文件,因为有些请求虽然返回的是200,但是没有任何内容,所以我用--hl 0 过滤掉了这部分。-c 是否选择带颜色的输出
3.测试URL中的参数
wfuzz -z range,0-100 --hl 106 http://192.168.0.102/Home/Run/tui.html?uid=FUZZ
4.POST请求测试
发现一个登录框,没有验证码,想爆破弱口令账户。
请求地址为:http://127.0.0.1/login.php
POST请求正文为:username=&password=
使用wfuzz测试:
wfuzz -w userList -w pwdList -d "username=FUZZ&password=FUZ2Z" http://127.0.0.1/login.php
高阶使用参考:
https://www.fuzzer.xyz/2019/03/29/WFUZZ使用教程/#Wfuzz高阶功法