动机 • 背景 • 安装 • 用法 • 运行 fuzzuli • 工具页面
fuzzuli 是一个 URL 模糊测试工具,旨在通过基于域名创建动态字典来发现关键备份文件。
在我多年来进行应用安全测试的过程中,我发现大量关键备份文件被保存在外部可访问的目录中。在命名这些文件时,通常使用了一些常见词汇(如 backup.zip、db.rar、conf.tar.gz 等)。然而,大多数文件是根据应用程序所在的域名来命名的。假设我们有一个域名地址 fuzzuli.musana.net,如果开发者将关键备份文件保存在可访问目录中,可能的文件名会是这样。```raw
fuzzuli.net.rar
fuzzuli.net.zip
fuzzuli.net.tar.gz
...
other file compression extensions
...
fuzzulinet.rar
fuzzulinet.zip
...
fuzzulimusana.rar
fuzzulimusana.7z
...
musana.fuzzuli.zip
musanafuzzuli.rar
...
so on
...
使用传统的单词表方法无法找到这些文件。
# 背景
在命名这些文件时,域名常被用作参考。我在命名这些文件时遇到过几种情况:删除域名中的点、删除元音字母,或者直接使用域名。在开发此工具时我考虑到了这一点。因此,在创建基于域名的单词表时,我考虑了无点、无元音、既无点又无元音的变体。然后,域名在移除点和元音字母(以及同时移除点和元音字母)后经过以下函数。
在通过**reverse method**反转域名后,再经过以下函数。
**mixed method**会改变每个子域的位置。然后结果经过以下函数。
数学公式如下。

**shuffle method**仅打乱子域,并移除点、元音字母,以及同时移除点和元音字母。它不会遍历域名字符串中的每个字符。
**fuzzuli**由两个主要部分组成。一个部分动态创建单词表,另一个部分发送HTTP请求并检查响应以发现备份文件/敏感文件。
**fuzzuli**的流程图如下。

**fuzzuli**使用7种不同的方法来创建单词表。让我们看看`fuzzuli.musana.net`的结果。
## shuffle```bash
┌──(root㉿kali)-[/root/fuzzuli]
└─# echo https://fuzzuli.musana.net|fuzzuli -mt shuffle