Fuzz工具使用详解
(1)wfuzz
描述:wfuzz 是一款Python开发的Web安全模糊测试工具。简而言之就是wfuzz可以用在做请求参数参数类的模糊测试,也可以用来做Web目录扫描等操作。 github项目: https://github.com/xmendez/wfuzz , 安装Wfuzz pip install wfuzz
字典文本: /usr/share/wfuzz/wordlist
- 简单粗暴的功能特点记录:
- 模块化 框架 可编写插件
- 接口 可处理BurpSuite所抓的请求和响应报文
基础入门
Usage: wfuzz [options] -z payload,params <url>
FUZZ, ..., FUZnZ #payload占位符,wfuzz会用指定的payload代替相应的占位符,n代表数字.
FUZZ{baseline_value} # FUZZ 会被 baseline_value替换,并将此作为测试过程中第一个请求来测试,可用来作为过滤的一个基础。
#参数解释
-h/--help : 帮助文档
--help : 高级帮助文档
--version : Wfuzz详细版本信息
-e <type> : 显示可用的encoders/payloads/iterators/printers/scripts列表(查看指定模块类型中的模块列表)
--recipe <filename> : 从文件中读取参数
--dump-recipe <filename> : 打印当前的参数并保存成文档
--oF <filename> : 将测试结果保存到文件,这些结果可被wfuzz payload 处理
-c : 彩色化输出
-v : 详细输出
-f filename,printer : 将结果以printer的方式保存到filename (默认为raw printer).
-o printer : 输出特定printer的输出结果
--interact : (测试功能) 如果启用,所有的按键将会被捕获,这使得你能够与程序交互
--dry-run : 打印测试结果,而并不发送HTTP请求
--prev : 打印之前的HTTP请求(仅当使用payloads来生成测试结果时使用)
-p addr : 使用代理,格式 ip:port:type. 可设置多个代理,type可取的值为SOCKS4,SOCKS5 or HTTP(默认)
-t N : 指定连接的并发数,默认为10
-s N : 指定请求的间隔时间,默认为0
-R depth : 递归路径探测,depth指定最大递归数量
-L,--follow : 跟随HTTP重定向
-Z : 扫描模式 (连接错误将被忽视).
--req-delay N : 设置发送请求允许的最大时间,默认为 90,单位为秒.
--conn-delay N : 设置连接等待的最大时间,默认为 90,单位为秒.
-A : 是 --script=default -v -c 的简写
--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 : 指定一个处理payloads的迭代器 (默认为product)
-z payload : 为每一个占位符指定一个payload,格式为 name[,parameter][,encoder].编码可以是一个列表,如 md5-sha1还可以串联起来, 如[email protected]还可使用编码各类名如 url;
使用help作为payload来显示payload的详细帮助信息,还可使用--slice进行过滤(替代了下面的--zP参数)
--zP <params> : 给指定的payload设置参数。必须跟在 -z 或-w 参数后面
--slice <filter> : 以指定的表达式过滤payload的信息,必须跟在-z 参数后面
-w wordlist : 指定一个wordlist文件,等同于 -z file,wordlist
-V alltype : 暴力测试所有GET/POST参数,无需指定占位符
-X method : 指定一个发送请求的HTTP方法,如HEAD或FUZZ
-b cookie : 指定请求的cookie参数,可指定多个cookie
-d postdata : 设置用于测试的POST data (ex: "id=FUZZ&catalogue=1")
-H header : 设置用于测试请求的HEADER (ex:"Cookie:id=1312321&user=FUZZ"). 可指定多个HEADER.
--basic/ntlm/digest auth : 格式为 "user:pass" or "FUZZ:FUZZ" or "domain\FUZ2Z:FUZZ"
--hc/hl/hw/hh N[,N]+ : 以指定的返回码/行数/字数/字符数作为判断条件隐藏返回结果 (用 BBB 来接收 baseline)
--sc/sl/sw/sh N[,N]+ : 以指定的返回码/行数/字数/字符数作为判断条件显示返回结果 (用 BBB 来接收 baseline)
--ss/hs regex : 显示或隐藏返回结果中符合指定正则表达式的返回结果
--filter <filter> : 显示或隐藏符合指定filter表达式的返回结果 (用 BBB 来接收 baseline)
--prefilter <filter> : 用指定的filter表达式在测试之前过滤某些测试条目
--slice 参数来过滤帮助返回信息的结果。
复制
核心知识:
- wfuzz使用payload来替换相应的FUZZ关键词的位置(占位符),可以使用多个字典使用-z 或-w 参数,相应的占位符应设置为
FUZZ,FUZ2Z,FUZ3Z,….,FUZnZ
, 其中n代表了占位序号。 - wfuzz可进行Playload的编码或加密
Wfuzz模块说明 wfuzz是模块化的框架,wfuzz默认自带很多模块,模块分为5种类型分别是:payloads、encoders、iterators、printers和scripts
。
wfuzz [options] -z payload,params <url>
#比如查看payload类中的模块列表
wfuzz -e payloads
# Available payloads:
# Name | Summary
# guitab | This payload reads requests from a tab in the GUI
# dirwalk | Returns filename's recursively from a local directory.
#模块中的说明过滤显示
wfuzz -z help --slice "names"
复制
1.payload为wfuzz生成的用于测试的特定字符串,一般情况下,会替代被测试URL中的FUZZ占位符。
- 当前版本中的wfuzz中可用payloads列表如下:Available payloads: Name | Summary ------------------------------------------------------------------------------------------------------ guitab | 从可视化的标签栏中读取请求 dirwalk | 递归获得本地某个文件夹中的文件名 file | 获取一个文件当中的每个词 autorize | 获取autorize的测试结果Returns fuzz results from autororize. wfuzzp | 从之前保存的wfuzz会话中获取测试结果的URL ipnet | 获得一个指定网络的IP地址列表 bing | 获得一个使用bing API搜索的URL列表 (需要 api key). stdin | 获得从标准输入中的条目 list | 获得一个列表中的每一个元素,列表用以 - 符号分格 hexrand | 从一个指定的范围中随机获取一个hex值 range | 获得指定范围内的每一个数值 names | 从一个以 - 分隔的列表中,获取以组合方式生成的所有usernames值 burplog | 从BurpSuite的记录中获得测试结果 permutation | 获得一个在指定charset和length时的字符组合 buffer_overflow | 获得一个包含指定个数个A的字符串. hexrange | 获得指定范围内的每一个hex值 iprange | 获得指定IP范围内的IP地址列表 burpstate | 从BurpSuite的状态下获得测试结果
2.的作用是将payload进行编码或加密。
- wfuzz的encoder列表如下:Available encoders: Category | Name | Summary ------------------------------------------------------------------------------------------------------------------------ url_safe, url | urlencode | 用
%xx
的方式替换特殊字符, 字母/数字/下划线/半角点/减号不替换 url_safe, url | double urlencode | 用%25xx
的方式替换特殊字符, 字母/数字/下划线/半角点/减号不替换 url | uri_double_hex | 用%25xx
的方式将所有字符进行编码 html | html_escape | 将&
,<
,>
转换为HTML安全的字符 html | html_hexadecimal | 用&#xx;
的方式替换所有字符 hashes | base64 | 将给定的字符串中的所有字符进行base64编码 url | doble_nibble_hex | 将所有字符以%%dd%dd
格式进行编码 db | mssql_char | 将所有字符转换为MsSQL语法的char(xx)
形式 url | utf8 | 将所有字符以\u00xx
格式进行编码 hashes | md5 | 将给定的字符串进行md5加密 default | random_upper | 将字符串中随机字符变为大写 url | first_nibble_hex | 将所有字符以%%dd?
格式进行编码 default | hexlify | 每个数据的单个比特转换为两个比特表示的hex表示 url | second_nibble_hex | 将所有字符以%?%dd
格式进行编码 url | uri_hex | 将所有字符以%xx
格式进行编码 default | none | 不进行任何编码 hashes | sha1 | 将字符串进行sha1加密 url | utf8_binary | 将字符串中的所有字符以\uxx
形式进行编码 url | uri_triple_hex | 将所有字符以%25%xx%xx
格式进行编码 url | uri_unicode | 将所有字符以%u00xx
格式进行编码 html | html_decimal | 将所有字符以&#dd;
格式进行编码 db | oracle_char | 将所有字符转换为Oracle语法的chr(xx)
形式 db | mysql_char | 将所有字符转换为MySQL语法的char(xx)
形式
3.wfuzz的iterator提供了针对多个payload的处理方式。
- itorators的列表如下:Available iterators: product | 返回输入迭代器的笛卡尔积。 zip | 返回一个迭代器,该迭代器聚合来自每个迭代器的元素。 chain | 返回一个迭代器从第一个迭代器返回元素,直到它被耗尽,然后继续到下一个迭代器,直到所有的迭代器都被耗尽
4.wfuzz的printers用于控制输出打印。
- printers列表如下:Available printers: raw |
Raw
output format json | Results injson
format csv |CSV
printer ftw magictree | Prints results inmagictree
format html | Prints results inhtml
format
5.wfuzz中的scripts用监测一些常见的存在漏洞的路径
- scripts列表如下:Available scripts: Category | Name | Summary -------------------------------------------------------------------- default, passive | cookies | 查找新的cookies default, passive | errors | 查找错误信息 passive | grep | HTTP response grep active | screenshot | 用linux cutycapt tool 进行屏幕抓取 default, active, discovery | links | 解析HTML并查找新的内容 default, active, discovery | wc_extractor | 解析subversion的wc.db文件 default, passive | listing | 查找列目录漏洞 default, passive | title | 解析HTML页面的title default, active, discovery | robots | 解析robots.txt文件来查找新内容 default, passive | headers | 查找服务器的返回头 default, active, discovery | cvs_extractor | 解析 CVS/Entries 文件 default, active, discovery | svn_extractor | 解析 .svn/entries 文件 active, discovery | backups | 查找已知的备份文件名 default, active, discovery | sitemap | 解析 sitemap.xml 文件
过滤器 描述:wfuzz具有过滤器功能,在做测试的过程中会因为环境的问题需要进行过滤,例如在做目录扫描的时候,你事先探测并知道了这个网站访问不存在目录的时候使用的是自定义404页面(也就是状态码为200),而你可以选择提取该自定义页面的特征来过滤这些返回结果。
wfuzz过滤分为两种方法:隐藏符合过滤条件的结果
和 显示符合过滤条件的结果
- 隐藏响应结果:可以隐藏某些HTTP响应。
- –hc 根据响应报文状态码进行隐藏(hide code)
- –hl根据响应报文行数进行隐藏(hide lines)
- –hw根据响应报文字数进行隐藏(hide word)
- –hh根据响应报文字符数进行隐藏(hide chars 这里因为code和chars首字母都是c,–hc参数已经有了,所以hide chars的参数就变成了–hh)
- 显示响应结果:显示响应结果的使用方法跟隐藏时的原理一样,只不过参数变为了
- –sc(show code)
- –sl(show lines)
- –sw(show word)
- –sh (show chars)
- 使用Baseline(基准线):过滤器可以是某个HTTP响应的引用,这样的引用我们称为Baseline(其实就是
标准线 or 及格线
)。 - 使用正则表达式过滤:-ss和–hs可以使用正则表达式来对返回的结果过滤。
- –ss 显示指定表达式请求结果
- –hs 隐藏指定表达式请求结果
内置工具
- wfencode 工具: 自带的一个加密/解密(编码/反编码)工具,目前支持内建的encoders的加/解密。
- wfpayload工具: payload生成工具。
- wxfuzz 工具: 看源码是一个wxPython化的wfuzz,也就是GUI图形界面的wfuzz。
- 目前需要wxPython最新版本才能使用,但是在ParrotOS和Kali上都无法正常安装成功;
实际案例: 示例1实际的使用一遍
#地址其中FUZZ单词,这个单词可以理解是一个占位符,
wfuzz -w 字典 https://weiyigeek.cn/FUZZ
wfuzz -w test_dict.txt https:/weiyigeek..cn/FUZZ
#返回结果如下:
==================================================================
ID Response Lines Word Chars Payload
编号、响应状态码、响应报文行数、响应报文字数、响应报文正字符数、测试使用的Payload。
==================================================================
000004: C=404 1 L 121 W 1636 Ch "test123"
复制
示例2第二种方式
#第一条命令中的wordlist表示为字典位置
wfuzz -z file --zP fn=wordlist URL/FUZZ
#第二条命令简写了第一条命令的赋值
wfuzz -z file,wordlist URL/FUZZ
#第三条命令使用-w,这个参数就是-z file --zP fn的别名。
wfuzz -w wordlist URL/FUZZ
复制
示例3例如想要同时爆破目录、文件名、后缀
wfuzz -w 目录字典路径 -w 文件名字典路径 -w 后缀名字典路径 URL/FUZZ/FUZ2Z.FUZ3Z
复制
示例4.隐藏设置响应码的结果
#隐藏404:
wfuzz -w wordlist --hc 404 URL/FUZZ
#隐藏404、403:
wfuzz -w wordlist --hc 404,403 URL/FUZZ
e.g.使用百度举个例子运行wfuzz -w test_dict.txt https://www.baidu.com/FUZZ #这里所有的测试请求,都是不存在的页面
404页面规则就是如上图结果所示:响应报文状态码(302)、响应报文行数(7)、响应报文字数(18)、响应报文字符数(222)
wfuzz -w wordlist --hl 7 https://www.baidu.com/FUZZ
wfuzz -w wordlist --hw 18 https://www.baidu.com/FUZZ
wfuzz -w wordlist --hh 222 https://www.baidu.com/FUZZ
#如果根据单个条件判断相对来说肯定是不精确的,所以整合一下就是这样的命令:
wfuzz -w wordlist --hc 302 --hl 7 --hw 18 --hh 222 https://www.baidu.com/FUZZ
复制
WeiyiGeek.
示例5.基准线(Baseline)的使用
wfuzz -w wordlist --hh BBB https://www.baidu.com/FUZZ{404there}
复制
WeiyiGeek.
代表wfuzz第一个请求是请求https://www.baidu.com/404there这个网址,在{ }内的值用来指定wfuzz第一个请求中的FUZZ占位符,而这第一个请求被标记为BBB(BBB不能换成别的)基准线
;其次这里使用的参数是–hh,也就是以BBB这条请求中的Chars为基准,其他请求的Chars值与BBB相同则隐藏。
示例6.使用正则表达式过滤的使用
#e.g. 在这里一个网站自定义返回页面的内容中包含Not Found,想根据这个内容进行过滤可以使用如下的命令:
wfuzz -w wordlist --hs "Not Found" http://127.0.0.1/FUZZ
#总结
wfuzz -w wordlist --hs 正则表达式 URL/FUZZ #隐藏
wfuzz -w wordlist --ss 正则表达式 URL/FUZZ #显示
复制
示例7.内置工具的使用
#(1) 目前支持内建的encoders的加/解密
wfencode -e base64 123456
#[RES] MTIzNDU2
wfencode -d base64 MTIzNDU2
#[RES] 123456
#(2) wfpayload是payload生成工具
wfpayload -z range,0-10
[RES]
0
1
#(3) wxfuzz 工具
wxPython化的wfuzz也就是GUI图形界面的wfuz
复制
自带字典
描述:wfuzz本身自带字典爆破文件、目录;
├── Injections #注入
│ ├── All_attack.txt
│ ├── SQL.txt
│ ├── Traversal.txt
│ ├── XML.txt
│ ├── XSS.txt
│ └── bad_chars.txt
├── general #通用
│ ├── admin-panels.txt
│ ├── big.txt
│ ├── catala.txt
│ ├── common.txt
│ ├── euskera.txt
│ ├── extensions_common.txt
│ ├── http_methods.txt
│ ├── medium.txt
│ ├── megabeast.txt
│ ├── mutations_common.txt
│ ├── spanish.txt
│ └── test.txt
├── others #其他
│ ├── common_pass.txt
│ └── names.txt
├── stress #压力
│ ├── alphanum_case.txt
│ ├── alphanum_case_extra.txt
│ ├── char.txt
│ ├── doble_uri_hex.txt
│ ├── test_ext.txt
│ └── uri_hex.txt
├── vulns #漏洞测试
│ ├── apache.txt
│ ├── cgis.txt
│ ├── coldfusion.txt
│ ├── dirTraversal-nix.txt
│ ├── dirTraversal-win.txt
│ ├── dirTraversal.txt
│ ├── domino.txt
│ ├── fatwire.txt
│ ├── fatwire_pagenames.txt
│ ├── frontpage.txt
│ ├── iis.txt
│ ├── iplanet.txt
│ ├── jrun.txt
│ ├── netware.txt
│ ├── oracle9i.txt
│ ├── sharepoint.txt
│ ├── sql_inj.txt
│ ├── sunas.txt
│ ├── tests.txt
│ ├── tomcat.txt
│ ├── vignette.txt
│ ├── weblogic.txt
│ └── websphere.txt
└── webservices
├── ws-dirs.txt
└── ws-files.txt
复制
实际案例:
#爆破文件:
wfuzz -w wordlist URL/FUZZ.php
#爆破目录:
wfuzz -w wordlist URL/FUZZ
#遍历枚举参数值使用payloads模块类中的range模块进行生成
wfuzz -z range,000-999 http://127.0.0.1/getuser.php?uid=FUZZ #uid参数可以遍历,已知123为三位数纯数字,需要从000-999进行遍历
#POST请求测试,-d参数传输POST请求正文。
wfuzz -w userList -w pwdList -d "username=FUZZ&password=FUZ2Z" http://127.0.0.1/login.php
#Cookie测试越权,b参数指定Cookie多个Cookie需要指定多次,也可以对Cookie进行测试,仍然使用FUZZ占位符即可。
wfuzz -z range,000-999 -b session=session -b cookie=cookie http://127.0.0.1/getuser.php?uid=FUZZ
#HTTP Headers测试伪造XFF头(IP),-H指定HTTP头,多个需要指定多次(同Cookie的-b参数)
wfuzz -z range,0000-9999 -H "X-Forwarded-For: FUZZ" http://127.0.0.1/get.php?userid=666
#测试HTTP请求方法(Method),-X参数是指定HTTP请求方法类型,因为这里要测试HTTP请求方法,后面的值为FUZZ占位符。
wfuzz -z list,"GET-POST-HEAD-PUT" -X FUZZ http://127.0.0.1/
#代理设置与关键字隐藏,多个代理可使用多个-p参数同时指定,wfuzz每次请求都会选取不同的代理进行
wfuzz -w wordlist -p proxtHost:proxyPort:TYPE URL/FUZZ #-p参数指定主机:端口:代理类型
wfuzz -z file,starter.txt -p 192.168.31.26:1080:SOCKS5 --hs "Cannot" https://foo.domain.com/FUZZ
#认证:测试一个需要HTTP Basic Auth保护的内容可使用如下命令:
#wfuzz可以通过--basec --ntml --digest来设置认证头,使用方法都一样:
# --basec/ntml/digest username:password
wfuzz -z list,"username-password" --basic FUZZ:FUZZ URL
#递归测试指定一个payload被递归的深度(数字)。
#例如:爆破目录时,我们想使用相同的payload对已发现的目录进行测试
wfuzz -z list,"admin-login.php-test-dorabox" -R 1 http://127.0.0.1/FUZZ
#并发和间隔,wfuzz提供了一些参数可以用来调节HTTP请求的线程
#使用-t参数设置并发请求,该参数默认设置都是10。
#使用-s参数可以调节每次发送HTTP的时间间隔。
wfuzz -z range,0-20 -t 20 -d "money=1" http://127.0.0.1/dorabox/race_condition/pay.php?FUZZ
#保存测试结果,可以通过printers模块来将结果以不同格式保存到文档中
#使用-f参数,指定值的格式为输出文件位置,输出格式。
$ wfuzz -f outfile,json -w wordlist URL/FUZZ
复制
高阶功法
Iterators-迭代器 BurpSuite的Intruder模块中Attack Type有Sniper(狙击手)、Battering ram(撞击物)、Pitchfork(相交叉)、Cluster bomb(集束炸弹)
~wfuzz的Iterators模块也可以完成这样的功能,将不同的字典的组合起来
使用参数-m 迭代器,wfuzz自带的迭代器有三个:zip、chain、product
,如果不指定迭代器,默认为product迭代器。
- zip:字典数相同、
一一对应进行组合
,如果字典数不一致则多余的抛弃掉不请求 - chain:将所有字典全部整合(不做组合)放在一起然后传入占位符FUZZ中。
- product:求的payload交叉组合即提供的两个字典相互配合遍历;
WeiyiGeek.
1.zip命令:
- 示例:设置了两个字典两个占位符,一个是range模块生成的0、1、2、3、4、5、6、7、8、9 10个数字,一个是外部字典dict.txt的9行字典,使用zip迭代器组合这两个字典发送。wfuzz -z range,0-9 -w dict.txt -m zip http://127.0.0.1/ip.php?FUZZ=FUZ2Z 如上命令结果就是数字9被抛弃了因为没有字典和它组合。
WeiyiGeek.
2.chain命令:
- 设置了两个字典,一个占位符FUZZ,使用chain迭代器组合这两个字典发送。wfuzz -z range,0-9 -w dict.txt -m chain http://127.0.0.1/ip.php?FUZZ
WeiyiGeek.
3.product命令:
- 设置了两个字典两个占位符,一个是range模块生成的0、1、2 3个数字,一个是外部字典dict.txt的3行字典,使用product迭代器组合这两个字典发送。wfuzz -z range,0-2 -w dict.txt -m product http://127.0.0.1/ip.php?FUZZ=FUZ2Z
Encoders-编码加解密 wfuzz中encoders模块可以实现编码解码、加密,它支持所列转换功能请参考上面的;
正常使用:
#使用Encoders的md5加密。
wfuzz -z file --zP fn=wordlist,encoder=md5 URL/FUZZ
#简写了第一条命令
wfuzz -z file,wordlist,md5 URL/FUZZ
复制
使用多个Encoder:
- 多个转换,使用一个
-
号分隔的列表来指定 wfuzz -z file,dict.txt,md5-base64 http://127.0.0.1/ip.php?FUZZ wfuzz -z list,1-2-3,md5-sha1-none http://webscantest.com/FUZZ - 多次转换使用一个@号分隔的列表来按照从右往左顺序多次转换 #这里让传入的字典先md5加密然后base64编码 wfuzz -z file,dict.txt,[email protected] http://127.0.0.1/ip.php?FUZZ
WeiyiGeek.
Scripts-脚本插件 描述:wfuzz支持插件,其本身也有很多插件,插件大部分都是实现扫描和解析功能,插件共有两大类和一类附加插件:
- passive:分析已有的请求和响应(被动)
- active:会向目标发送请求来探测(主动)
- discovery:自动帮助wfuzz对目标站进行爬取,将发现的内容提供给wfuzz进行请求
基础使用
#查看script中robots脚本的帮助信息
wfuzz --script-help=robots #该模块解析robots.txt的并且寻找新的内容
wfuzz --script=robots -z list,"robots.txt" http://127.0.0.1/FUZZ
复制
WeiyiGeek.
script是使用脚本模块的参数,这时候就有个疑惑命令为什么要加上list呢?
因为在这里robots脚本只是解析robots.txt规则的,所以你需要告诉wfuzz去请求哪个文件而这里我写的就是robots.txt就可以解析;
自定义插件:需要放在~/.wfuzz/scripts/目录下,具体如何编写可以参考已有的插件:
- https://github.com/xmendez/wfuzz/tree/master/src/wfuzz/plugins/scripts
技巧-脚本插件
- recipes用来保存命令,方便下次执行或者分享给别人。#生成一个recipes: wfuzz --script=robots -z list,“robots.txt” --dumo-recipe outrecipe URL/FUZZ #使用某个recipes: wfuzz --recip outrecipe
- 网络异常:如DNS解析失败,拒绝连接等时,wfuzz会抛出一个异常并停止执行使用-Z参数即可忽略这些错误继续执行。
- 超时:fuzz可以设置超时时间。
- 参数–conn-delay来设置等待服务器响应接连的秒数。
- 参数–req-delay来设置等待响应完成的最大秒数。
- 结合BurpSuites使用:从Burp的LOG文件中获取测试的URL地址#解析burplog里面请求的url wfuzz -z burplog,“1.burp” FUZZ #还有能够读取burpsuite保存的state: wfuzz -z burpstate,a_burp_state.burp FUZZ
cipes用来保存命令,方便下次执行或者分享给别人。#生成一个recipes: wfuzz --script=robots -z list,“robots.txt” --dumo-recipe outrecipe URL/FUZZ #使用某个recipes: wfuzz --recip outrecipe
- 网络异常:如DNS解析失败,拒绝连接等时,wfuzz会抛出一个异常并停止执行使用-Z参数即可忽略这些错误继续执行。
- 超时:fuzz可以设置超时时间。
- 参数–conn-delay来设置等待服务器响应接连的秒数。
- 参数–req-delay来设置等待响应完成的最大秒数。
- 结合BurpSuites使用:从Burp的LOG文件中获取测试的URL地址#解析burplog里面请求的url wfuzz -z burplog,“1.burp” FUZZ #还有能够读取burpsuite保存的state: wfuzz -z burpstate,a_burp_state.burp FUZZ