Wfuzz 是一款功能强大的开源 Web 应用模糊测试(Fuzzing)工具,主要用于自动化发现 Web 应用中的隐藏资源、注入漏洞、目录遍历等问题。它由 Python 编写,支持多种 payload(有效载荷)注入方式,能够对 HTTP 请求的各个部分进行暴力破解或模糊测试,包括 URL 路径、GET/POST 参数、Cookie、HTTP 头、认证信息等。Wfuzz 的设计理念是模块化和可扩展性强,适合渗透测试人员、安全研究员和开发人员用于 Web 安全评估。
Wfuzz 的核心机制是通过在目标 URL 或请求中用特殊的占位符(如 FUZZ、FUZ2Z 等)标记需要模糊测试的位置,然后用指定的 payload 列表逐一替换这些占位符,发送 HTTP 请求,并根据响应(如状态码、响应长度、内容关键字等)来过滤和展示结果。这使得它在发现隐藏目录、备份文件、参数注入点等方面非常高效。
Wfuzz 的主要特点
Wfuzz 的优势在于其灵活性和扩展性,主要特点包括:
- 多位置模糊测试:支持对 URL 路径、查询参数、POST 数据、Cookie、自定义 Header、HTTP 方法(Verb)等进行 fuzzing。
- 丰富的 Payload 支持:内置多种 payload 类型,如文件词典、数字范围、列表等,还支持自定义和外部工具生成。
- 强大的过滤和输出控制:根据响应码、响应行数、单词数、字符数、内容匹配等进行过滤,支持隐藏或高亮特定结果。
- 迭代器和编码器:支持多个 payload 的组合(笛卡尔积、zip 等),以及多种编码方式(MD5、URL 编码等)。
- 递归和性能优化:支持递归 fuzzing 发现的路径,多线程加速,延迟控制等。
- 代理和认证支持:兼容 HTTP/SOCKS 代理,Basic、NTLM 等认证。
- 脚本和插件系统:可扩展脚本用于被动/主动扫描,发现如 robots.txt 中的路径等。
- 输出格式多样:支持 JSON、HTML 等格式保存结果,便于后续分析。
- Python 库模式:可作为库在脚本中调用,实现自动化测试。
- 辅助工具:如 wfpayload(生成 payload)、wfencode(编码/解码)。
Wfuzz 常用于目录爆破、参数 fuzzing、暴力登录、漏洞验证等场景,与 Burp Suite、DirBuster 等工具互补。
安装和入门
Wfuzz 的安装相对简单,通常通过 pip 安装:
pip install wfuzz
它依赖 pycurl 等库,在某些系统(如 MacOS 或 Windows)上可能需要额外处理 SSL 或 pycurl 问题。官方文档提供了针对这些平台的 troubleshooting 指南。
Wfuzz 自带词典目录(wordlist/),包含 common.txt、big.txt 等常用词典。运行后,可通过 wfuzz -h 查看帮助。
此外,支持 Docker 运行:
docker run -v $(pwd)/wordlist:/wordlist/ -it ghcr.io/xmendez/wfuzz wfuzz
这避免了本地安装问题。
入门示例:最简单的目录爆破:
wfuzz -w wordlist/general/common.txt --hc 404 http://example.com/FUZZ
这里 -w 指定词典,--hc 404 隐藏 404 响应(常见于不存在的路径),FUZZ 是 payload 注入点。
输出会显示响应码、行数(lines)、单词数(words)、字符数(chars)等,便于快速识别异常响应(如 200 或 403)。
基本用法详解
Wfuzz 的基本命令格式:
wfuzz [options]<target_url_with_FUZZ>


