forshaur/adyant
GitHub: forshaur/adyant
基于马尔可夫链的智能 URL 字典生成器,从真实语料中学习路径模式以生成高相关性端点,提升侦察和模糊测试效率。
Stars: 1 | Forks: 0
# Adyant ([/ɑːdiˌjɑːnt/](https://www.wisdomlib.org/definition/adyant))
**智能 Markov 链 URL 字典生成器。**
`adyant` 从任何语料库(Burp 历史记录、Wayback 等)中学习真实的 URL 模式,并为目标站点生成高度相关的路径——远比随机暴力破解字典智能得多。
非常适合用于侦察、目录爆破、API 枚举和漏洞赏金狩猎。
#### 为什么要使用 `adyant`?
* 通过快速发现常见和罕见的端点来节省时间。
* 使用更少的请求获得更高的命中率。
* 减少噪音
* 可以集成到工作流中(领先于其他使用陈旧且缓慢的字典进行模糊测试的黑客)
`然而,输出的质量在很大程度上受您提供的训练语料库的影响——请牢记这一点。`
此外,本项目由我的研究作为支撑,一旦发表,我会将其附在此处。
**如果您在使用该工具时遇到任何问题,请提交 issue。**
## 快速开始
**要寻找训练语料库,您可以参考 Burp Suite 历史记录、Wayback URL,爬取与您的目标使用相同框架的不同站点,或者您可以从[这里](https://console.cloud.google.com/bigquery)下载数十亿个 URL。只需确保(这一点很重要)您筛选出了希望模型从中学习的那些内容。**
### 1. 安装
```
pip install adyant
```
### 2. 训练一次
```
# 从包含 URLs 的文件中进行训练
adyant --train urls.txt --save model.json
# 或者从任何地方通过管道输入 (waybackurls, Burp export 等)
cat my_urls.txt | adyant --train - --save model.json
```
### 3. 生成字典
```
# 特定前缀下最有可能的路径 (默认 = sample 模式)
adyant --model model.json --seed target.com/api/ --count 100
# 仅包含一级子路径 (最适合 fuzzing)
adyant --model model.json --seed target.com/api/ --mode child --count 50
# 通过管道直接传递给 ffuf (静默模式 + 仅路径)
adyant --model model.json --seed target.com/api/ -q --paths-only --format ffuf | \
ffuf -u https://target.com/FUZZ -w -
```
**有用的标志:**
- `--expand` → 将 `:num:`、`:uuid:` 等替换为训练中的实际值
- `--scores` → 在每个 URL 旁边显示置信度
- `--format ffuf|burp|nuclei` → 可直接粘贴的输出格式
- `--paths-only` → 仅输出路径(非常适合 `-u https://target.com/FUZZ`)
**可用模式**(使用 `--mode `):
- `sample`(默认)– 快速且明显的路径
- `child` – 仅限直接子路径
- `rare` – 隐藏的宝藏,它们都在哪里呢?
- `beam` – 确定性且最高置信度
- `diverse` – 跨子树的广泛覆盖
- `deep` – 长嵌套路径
运行 `adyant --help` 获取简版说明,或查看 **[wiki.md](wiki.md)** 了解所有其他内容。
`然而,输出的质量在很大程度上受您提供的训练语料库的影响——请牢记这一点。`
此外,本项目由我的研究作为支撑,一旦发表,我会将其附在此处。
**如果您在使用该工具时遇到任何问题,请提交 issue。**
## 快速开始
**要寻找训练语料库,您可以参考 Burp Suite 历史记录、Wayback URL,爬取与您的目标使用相同框架的不同站点,或者您可以从[这里](https://console.cloud.google.com/bigquery)下载数十亿个 URL。只需确保(这一点很重要)您筛选出了希望模型从中学习的那些内容。**
### 1. 安装
```
pip install adyant
```
### 2. 训练一次
```
# 从包含 URLs 的文件中进行训练
adyant --train urls.txt --save model.json
# 或者从任何地方通过管道输入 (waybackurls, Burp export 等)
cat my_urls.txt | adyant --train - --save model.json
```
### 3. 生成字典
```
# 特定前缀下最有可能的路径 (默认 = sample 模式)
adyant --model model.json --seed target.com/api/ --count 100
# 仅包含一级子路径 (最适合 fuzzing)
adyant --model model.json --seed target.com/api/ --mode child --count 50
# 通过管道直接传递给 ffuf (静默模式 + 仅路径)
adyant --model model.json --seed target.com/api/ -q --paths-only --format ffuf | \
ffuf -u https://target.com/FUZZ -w -
```
**有用的标志:**
- `--expand` → 将 `:num:`、`:uuid:` 等替换为训练中的实际值
- `--scores` → 在每个 URL 旁边显示置信度
- `--format ffuf|burp|nuclei` → 可直接粘贴的输出格式
- `--paths-only` → 仅输出路径(非常适合 `-u https://target.com/FUZZ`)
**可用模式**(使用 `--mode 标签:API枚举, Bug Bounty, Burp Suite, ffuf, Python安全工具, Recon, URL模糊测试, Wayback Machine, Web安全, 主机安全, 反汇编, 可自定义解析器, 安全侦察, 密码管理, 情报收集, 漏洞研究, 目录爆破, 网络安全, 蓝队分析, 路径发现, 逆向工具, 隐私保护, 马尔可夫链, 黑盒测试