wfuzz使用教程

Wfuzz - 网络模糊器


Wfuzz 的创建是为了促进 Web 应用程序评估中的任务,它基于一个简单的概念:它用给定有效负载的值替换对 FUZZ 关键字的任何引用。

Wfuzz 中的有效负载是数据源。

这个简单的概念允许在 HTTP 请求的任何字段中注入任何输入,允许在不同的 Web 应用程序组件中执行复杂的 Web 安全攻击,例如:参数、身份验证、表单、目录/文件、标头等。

Wfuzz 不仅仅是一个网络内容扫描器:

  • Wfuzz 可以通过查找和利用 Web 应用程序漏洞来帮助您保护 Web 应用程序。Wfuzz 的 Web 应用程序漏洞扫描器由插件支持。

  • Wfuzz 是一个完全模块化的框架,即使是最新的 Python 开发人员也可以轻松做出贡献。构建插件很简单,只需要几分钟。

  • Wfuzz 向先前使用 Wfuzz 或其他工具(例如 Burp)执行的 HTTP 请求/响应公开了一个简单的语言接口。这允许您在完整的上下文和对您的操作的理解的情况下执行手动和半自动测试,而无需依赖 Web 应用程序扫描器底层实现。

它的创建是为了促进 Web 应用程序评估中的任务,它是渗透测试人员为渗透测试提供的工具。


wfuzz参数详解


选项:

-h/--help:帮助
--help:高级帮助
--filter-help:筛选器帮助
--version:Wfuzz版本详细信息
-e<type>:可用编码器/有效负载/迭代器/打印机/脚本列表

--recipe<filename>:从配方中读取选项。对各种食谱重复上述步骤。
--dump recipe<filename>:将当前选项打印为配方
--oF<filename>:将模糊结果保存到文件中。这些可以稍后使用wfuzz有效负载来使用。

-c:带颜色的输出
-v:详细信息。
-f filename,printer:使用指定的打印机(如果省略了原始打印机)将结果存储在输出文件中。
-o printer:使用指定的打印机显示结果。
--interact:(beta)如果选中,则捕获所有按键。这允许您与程序交互。
--dry-run:打印应用请求的结果,而不实际发出任何HTTP请求。
--prev:打印以前的HTTP请求(仅当使用生成模糊结果的有效负载时)
--efield<expr>:显示指定的语言表达式以及当前负载。对各个字段重复上述操作。
--field<expr>:不显示有效负载,只显示指定的语言表达式。对各个字段重复上述操作。

-p addr:使用ip:port:type格式的代理。重复使用各种代理的选项。如果省略,类型可以是SOCKS4、SOCKS5或HTTP。

-t N:指定并发连接数(默认值为10)
-s N:指定请求之间的时间延迟(默认值为0)
-R depth:递归路径发现深度是最大递归级别。
-D depth:最大链接深度级别。
-L, --follow:遵循HTTP重定向
--ip-host:port:以ip:port格式指定要连接的ip,而不是URL的主机
-Z:扫描模式(将忽略连接错误)。
--req delay N:设置请求允许的最长时间(以秒为单位)(CURLOPT_TIMEOUT)。默认值90。
--conn-delay N:设置服务器连接阶段要花费的最长时间(以秒为单位)(CURLOPT_CONNECTTIMEOUT)。默认值90。

-A, --AA, --AAA: --script=default,verbose,discovery-v-c的别名
--no-cache:禁用插件缓存。将扫描每个请求。
--script=:相当于--script=默认值
--script=<plugins>:运行脚本的扫描<plugins>是以逗号分隔的插件文件或插件类别列表
--script help=<plugins>:显示有关脚本的帮助。
--script-args n1=v1,…:为脚本提供参数。即--script args grep.regex=“<A href=\”(.*?)\“>”

-u url:指定请求的url。
-m iterator:指定用于组合有效载荷的迭代器(默认为product)
-z payload:以名称[,参数][,编码器]的形式为每个FUZZ关键字指定有效负载。可以使用编码器列表,即md5-sha1。编码器可以是链式的,即。md5@sha1.可以使用编码器类别。即url
使用帮助作为有效负载来显示有效负载插件的详细信息(您可以使用--slice进行过滤)

--zP<params>:指定有效负载的参数(必须以-z或-w开头)。
--zD<default>:指定有效负载的默认参数(必须以-z或-w开头)。
--zE<encoder>:指定有效负载的编码器(它必须以-z或-w开头)。
--slice<filter>:使用指定的表达式过滤有效负载的元素。它必须以-z开头。
-w wordlist:指定wordlist文件(-z文件的别名,wordlist)。
-V alltype:所有参数brutforming(allvars和allpost)。不需要FUZZ关键字。
-X method:指定请求的HTTP方法,即HEAD或FUZZ

-b cookie:为请求指定cookie。对各种cookie重复选项。
-d postdata:使用postdata(例如:“id=FUZZ&catalog=1”)
-H header:使用header(例如:“Cookie:id=1312321&user=FUZZ”)。对各种标题重复选项。
--basic/ntlm/digest auth:格式为“user:pass”或“FUZZ:FUZZ”或

--hc/hl/hw/hh N[,N]+:隐藏具有指定代码/行/字/字符的响应(使用BBB从基线获取值)
--sc/sl/sw/sh N[,N]+:显示具有指定代码/行/字/字符的响应(使用BBB获取基线值)
--ss/hs正则表达式:显示/隐藏内容中具有指定正则表达式的响应
--filter<filter>:使用指定的筛选器表达式显示/隐藏响应(使用BBB从基线获取值)
--prefilter<filter>:使用指定的表达式在模糊化之前过滤项目。对串联过滤器重复上述步骤。

wfuzz常见用法


模糊查询GET请求参数

wfuzz -u "http://192.168.1.104/test.php?FUZZ=/etc/passwd" -w /usr/share/wfuzz/wordlist/general/common.txt --hh 80

模糊查询POST请求参数

wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt -d "uname=FUZZ&pass=FUZZ"  --hc 302 http://192.168.1.102/user.php

添加cookie发起请求

wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt -b cookie=value1 -b cookie2=value2 http://192.168.1.102/FUZZ

添加请求头

wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt -H "Referer: 127.0.0.1" http://192.168.1.102/FUZZ

子域名扫描

wfuzz -w /usr/share/amass/wordlists/subdomains-top1mil-5000.txt -u cc123.com -H "Host:FUZZ.cc123.com" --hw 53

爆破401认证界面

wfuzz -c -w /usr/share/wordlists/rockyou.txt --basic mum:FUZZ -u http://192.168.1.106:631/admin/ -b "org.cups.sid=f607a41978fbca423d4de60f686fe8f5" -d "org.cups.sid=f607a41978fbca423d4de60f686fe8f5&OP=add-printer" -Z --hc 401

posted @ 2023-02-24 19:35  Cx330Lm  阅读(1512)  评论(0编辑  收藏  举报