通过手动输入输入来测试漏洞可能会麻烦。
在当今人们时间和耐心水平较低的时代,手动提供输入以查找目标中的错误/漏洞的想法可能会让人不知所措。
为了减少这个压倒性的问题并节省时间,模糊测试可能是一个很大的优势。
Fuzzing 是一个自动化过程,其中所有繁重的工作都由 fuzzing 工具处理。分析师所要做的就是查看流程完成后的响应、时间和状态代码。
考虑一个有许多输入字段来测试 XSS 的站点。在手动方法中,我们所做的只是将 XSS payload一个一个地提供给输入字段,这太麻烦了。
Fuzzing是在一定的时间间隔内向目标网站发送多个请求的过程或技术。换句话说,它也类似于暴力破解。
Fuzzing 是一个可以使用 Wfuzz、ffuf 等工具来实现的过程。你需要为工具提供目标 URL、参数、端点等以及某种输入。
然后 fuzzing 工具制作请求并将它们一个接一个地发送到目标。模糊测试完成后,需要分析响应、时间和状态代码是否存在漏洞。
业内有数百种工具可用于进行模糊测试。下面列出了一些评价最高的流行模糊测试工具。
Wfuzz通过将占位符 FUZZ
替换为 wordlist 值来工作。为了更清楚地理解这一点,让我们考虑一个例子:
$ wfuzz -w userIDs.txt https://example.com/view_photo?userId=FUZZ
在上面的命令中,userIds.txt
是一个包含数字 ID 值的 worldlist 文件。在这里,我们告诉 wfuzz 对示例 URL 的请求进行模糊测试。请注意 URL 中的 FUZZ 单词,它将充当 wfuzz 的占位符,以替换单词列表中的值。将插入 userIDs.txt
文件的所有数字 ID 值,替换 FUZZ
关键字。
Ffuf是一个用 Go 语言编写的网络模糊测试工具,本质上是非常快速和递归的。它的工作方式类似于 Wfuzz,但相比之下它是递归的。Ffuf 还可以通过用 worldlist 值替换占位符 FUZZ
来工作。例如:
$ ffuf -w userIDs.txt -u https://example.com/view_photo?userId=FUZZ
这里的 -w
是 wordlist 的标志,而 -u
是目标 URL 的标志。其余工作机制与Wfuzz相同。它用 userIDs.txt
值替换了 FUZZ
占位符。
GoBuster是另一种用 Go 语言编写的模糊器,最常用于模糊 URI、目录/路径、DNS 子域、AWS S3 存储桶、虚拟主机名,并支持并发。例如:
$ gobuster dir -w endpoints.txt -u https://example.com
在上面的命令中,dir
指定我们正在对一个目录进行模糊测试,-u
是 URL 的标志,-w
是 wordlist 的标志,其中 endpoints.txt
是将从中获取有效负载的 worldlist 文件。该命令对端点运行并发请求以查找可用目录。
在上面的例子中,我们已经看到了为什么我们需要一个字典。仅字典是不够的,必须非常适合你的 fuzzing 场景。如果你没有找到任何符合必要场景的词表,请考虑生成你自己的字典。下面提供了一些流行的字典和参考资料。
(XSS) 备忘单
https://portswigger.net/web-security/cross-site-scripting/cheat-sheetAwesomeXSS
https://github.com/s0md3v/AwesomeXSS
常用的payload
https://github.com/swisskyrepo/PayloadsAllTheThings
https://github.com/minimaxir/big-list-of-naughty-strings
https://github.com/Bo0oM/fuzz.txt
FuzzDB
https://github.com/fuzzdb-project/fuzzdb
bl4de字典
https://github.com/bl4de/dictionaries
重定向相关payload
https://github.com/cujanovic/Open-Redirect-Payloads
EdOverflow 漏洞赏金备忘单
https://github.com/EdOverflow/bugbounty-cheatsheet
SecLists
https://github.com/danielmiessler/SecLists
XssPayloads
https://twitter.com/XssPayloads
XssPayloads列表
https://github.com/payloadbox/xss-payload-list
声明一下,并不是每个人都使用模糊测试工具。每个人都有不同的习惯和方法。
使用模糊测试工具不是强制性的。根据你的条件和情况,你可以使用模糊测试工具,这将有利于您节省时间。
模糊测试大量的请求可能会导致您的 IP 地址被目标ban掉,有些人同意手动完成所有工作,而不是使用模糊测试工具。因此,由你手动测试漏洞或让模糊测试工具自动为你完成。
推荐阅读:
2022年零基础+进阶系统化白帽黑客学习 | 10月特别优惠活动
点赞,转发,在看