WFUZZ模糊测试
使用指南
选项:
-h/--help :这个帮助
--help : 高级帮助
--filter-help : 过滤语言规范
--version : Wfuzz 版本详细信息
-e <type> :可用编码器/有效负载/迭代器/打印机/脚本的列表--recipe <文件名> :从配方中读取选项。对各种食谱重复此操作。
--dump-recipe <filename> :将当前选项打印为配方
--oF <文件名> :将模糊结果保存到文件中。这些可以稍后使用 wfuzz 有效负载使用。-c :带颜色的输出
-v:详细信息。
-f filename,printer :使用指定的打印机(如果省略则为原始打印机)将结果存储在输出文件中。
-o Printer :使用指定打印机显示结果。
--interact :(测试版)如果选择,则捕获所有按键。这允许您与程序交互。
--dry-run :打印应用请求的结果,而不实际发出任何 HTTP 请求。
--prev :打印之前的 HTTP 请求(仅当使用有效负载生成模糊结果时)
--efield <expr> :显示指定的语言表达式以及当前的有效负载。对各个字段重复此操作。
--field <expr> :不显示负载,仅显示指定的语言表达式。对各个字段重复此操作。-p addr :使用 ip:port:type 格式的代理。重复使用各种代理的选项。-t N :指定并发连接数(默认10)
-s N :指定请求之间的时间延迟(默认为 0)
-R 深度 :递归路径发现的深度是最大递归级别。
-D 深度 :最大链接深度级别。
-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 :分别为 -v -c 和 --script=default、verbose、discover 的别名
--no-cache :禁用插件缓存。每个请求都会被扫描。
--script= :相当于 --script=default
--script=<plugins> :运行脚本的扫描。 <plugins> 是逗号分隔的插件文件或插件类别列表
--script-help=<plugins> :显示有关脚本的帮助。
--script-args n1=v1,... : 为脚本提供参数。 IE。 --script-args grep.regex="<A href=\"(.*?)\">"-u url :指定请求的 URL。
-m iterator :指定用于组合有效负载的迭代器(默认产品)
-z有效负载 :以名称[,参数] [,编码器]的形式为使用的每个FUZZ关键字指定有效负载。--zP <params> :指定有效负载的参数(前面必须带有 -z 或 -w)。
--zD <default> :指定负载的默认参数(前面必须带有 -z 或 -w)。
--zE <encoder> :指定有效负载的编码器(前面必须带有 -z 或 -w)。
--slice <filter> :使用指定表达式过滤有效负载的元素。它前面必须带有 -z。
-w wordlist :指定一个单词列表文件(-z file,wordlist 的别名)。
-V alltype :暴力破解所有参数(allvars 和 allpost)。不需要 FUZZ 关键字。
-X method : 指定请求的HTTP方法,即。头或毛茸茸的-b cookie :为请求指定 cookie。对各种 cookie 重复选项。
-d postdata :使用发布数据(例如:“id=FUZZ&catalogue=1”)
-H header :使用标头(例如:“Cookie:id=1312321&user=FUZZ”)。各种标题的重复选项。
--basic/ntlm/digest auth :格式为“user:pass”或“FUZZ:FUZZ”或“domain\FUZ2Z:FUZZ”--hc/hl/hw/hh N[,N]+ :隐藏具有指定代码/行/单词/字符的响应(使用 BBB 从基线获取值)
--sc/sl/sw/sh N[,N]+ :显示具有指定代码/行/单词/字符的响应(使用 BBB 从基线获取值)
--ss/hs regex :显示/隐藏内容中指定正则表达式的响应
--filter <filter> :使用指定的过滤表达式显示/隐藏响应(使用 BBB 从基线获取值)
--prefilter <filter> :使用指定表达式在模糊测试之前过滤项目。重复连接过滤器。
文件发现
打开kali,进行第一步配置环境变量
export URL="http://192.168.70.138/FUZZ"
echo $URL
使用 -c 来显示颜色输出,使用 -z 来指定输入源,并使用 -hc 来避免不存在和错误的响应。
wfuzz -c -z file,/usr/share/wordlists/wfuzz/general/common.txt --hc 404,301,403 "$URL"
目录发现
查找目录,需要使用尾部正斜杠来重新导入环境变量
也要换个字典,这里没换
参数发现
export URL="http://192.168.70.138/index.php?FUZZ=data"
echo $URL
wfuzz -c -z file,/home/fuzz-db/Web-Fuzzing-Box/Web/Parameters/Top100_Parameters.txt --hc 404,301,403 "$URL"
尽管在这种情况下无法直接利用这些参数,但我们仍然了解了检查端点是否存在隐藏参数所需的过程,这些参数可能已被遗漏,不用于最终用户交互,或用于数据处理目的。
参数值发现
export URL="http://192.168.70.138:80/index.php?url=FUZZ"
echo $URL
wfuzz -c -z file,/home/fuzz-db/Web-Fuzzing-Box/Web/Parameters/Top100_Parameters.txt --hc 404,301,403 "$URL"
POST参数值发现
另外,hh 参数可以抑制指定字节的响应大小值
注意:其中-d的值是通过burp抓包得来的
命令技巧
查询指定文件路径(可以用于查找指定字典的绝对路径)
realpath <filename>
注意:可以用tab键来补全命令