arrester/EndAbyss
GitHub: arrester/EndAbyss
一款用于端点发现与参数提取的快速爬取工具,兼顾静态与动态扫描并支持灵活管道集成。
Stars: 2 | Forks: 0
# 🌊 EndAbyss



EndAbyss 是一个用于端点发现的快速工具,可爬取网站以收集端点和参数,适用于漏洞赏金和红队操作。

## 🌟 功能特性
- **红队/漏洞赏金支持**:适用于红队操作和 Web 漏洞赏金项目
- **静态/动态扫描**:支持快速静态扫描或基于 Playwright 的动态扫描
- **端点发现**:自动从 HTML、JavaScript 和 API 响应中收集端点
- **参数提取**:自动从表单和 URL 中提取 GET/POST 参数
- **目录扫描**:支持基于单词列表的目录暴力破解
- **管道集成**:支持使用 `-pipeurl`、`-pipeendpoint`、`-pipeparam`、`-pipejson` 选项与其他工具集成
- **WAF 绕过选项**:支持延迟、随机延迟、速率限制和代理
- **模块化设计**:可作为 Python 模块导入和使用
## 🚀 安装
**bash**
```
git clone https://github.com/arrester/endabyss.git
cd endabyss
pip install -r requirements.txt
pip install -e .
```
或
**Python**
```
pip install endabyss
```
若要使用动态扫描模式,请安装 Playwright 浏览器:
```
playwright install chromium
```
## 📖 使用方法
### CLI 模式
**基础扫描**
`endabyss -t http://example.com`
**动态扫描模式**
`endabyss -t http://example.com -m dynamic`
**目录扫描**
`endabyss -t http://example.com -ds -w wordlist.txt`
**管道输出**
`endabyss -t http://example.com -pipeurl` # 仅输出 URL
`endabyss -t http://example.com -pipeendpoint` # 仅输出端点
`endabyss -t http://example.com -pipeparam` # 仅输出参数
`endabyss -t http://example.com -pipejson` # 输出 JSON 格式
**管道集成示例**
`endabyss -t http://example.com -pipeurl | sqlmap --batch`
### 与 SubSurfer 集成
使用 EndAbyss 从 SubSurfer 收集的 Web 子域名中扫描端点的管道配置:
**1. 基础集成(Web 子域名 → 端点收集)**
`subsurfer -t example.com -pipeweb | xargs -I {} endabyss -t {} -pipeurl`
**2. 保存结果到文件**
`subsurfer -t example.com -pipeweb | xargs -I {} endabyss -t {} -o results.txt`
**3. 集成动态扫描模式**
`subsurfer -t example.com -pipeweb | xargs -I {} endabyss -t {} -m dynamic -pipeurl`
**4. 收集 JSON 格式的详细信息**
`subsurfer -t example.com -pipeweb | xargs -I {} endabyss -t {} -pipejson`
**5. 包含目录扫描**
`subsurfer -t example.com -pipeweb | xargs -I {} endabyss -t {} -ds -w wordlist.txt -pipeurl`
### 作为 Python 模块使用
**基础端点扫描**
```
from endabyss.core.controller.controller import EndAbyssController
import asyncio
async def main():
controller = EndAbyssController(
target="http://example.com",
mode="static",
verbose=1,
depth=5
)
results = await controller.scan()
print(f"Found {len(results['endpoints'])} endpoints")
print(f"Found {len(results['forms'])} forms")
print(f"Found {len(results['parameters'])} parameter sets")
for param_data in results['parameters']:
url = param_data['url']
params = param_data.get('parameters', {})
param_str = '&'.join([f"{k}={v}" for k, v in params.items()])
print(f"{url}?{param_str} [{param_data['method']}]")
if __name__ == "__main__":
asyncio.run(main())
```
**动态扫描**
```
from endabyss.core.controller.controller import EndAbyssController
import asyncio
async def main():
controller = EndAbyssController(
target="http://example.com",
mode="dynamic",
headless=True,
wait_time=3.0
)
results = await controller.scan()
for endpoint in results['endpoints']:
print(endpoint['url'])
if __name__ == "__main__":
asyncio.run(main())
```
**结果保存**
```
from endabyss.core.controller.controller import EndAbyssController
import asyncio
async def main():
controller = EndAbyssController("http://example.com")
results = await controller.scan()
output_path = controller.get_output_path("results.json")
controller.save_results(results, output_path)
print(f"Results saved to: {output_path}")
if __name__ == "__main__":
asyncio.run(main())
```
## 🔧 引用工具的关键特性
EndAbyss 集成了多种参考工具的关键特性:
- **Katana**:深度爬取和端点发现方法论
- **LinkFinder**:使用正则表达式模式提取 JavaScript 端点
- **ParamSpider**:参数提取和 URL 清理技术
- **SubSurfer**:CLI 设计、管道集成和模块化架构
## 📋 可用选项
| 选项 | 描述 |
| --- | --- |
| `-t, --target` | 目标 URL 或域名 |
| `-tf, --targetfile` | 包含目标列表的文件 |
| `-m, --mode` | 扫描模式:静态(默认)或动态 |
| `-d, --depth` | 爬取深度(默认:5) |
| `-c, --concurrency` | 并发请求数(默认:10) |
| `-ds, --dirscan` | 启用目录扫描 |
| `-w, --wordlist` | 用于目录扫描的单词列表文件 |
| `--delay` | 请求之间的延迟(秒) |
| `--random-delay` | 随机延迟范围(例如 1-3) |
| `--proxy` | 代理 URL(HTTP/HTTPS/SOCKS5) |
| `--rate-limit` | 速率限制(每秒请求数) |
| `-pipeurl` | 仅输出 URL 用于管道 |
| `-pipeendpoint` | 仅输出端点用于管道 |
| `-pipeparam` | 仅输出参数用于管道 |
| `-pipejson` | 输出 JSON 格式用于管道 |
## 📋 要求
- 推荐:Python 3.13.0 或更高版本
- aiohttp
- beautifulsoup4
- playwright(用于动态扫描)
- rich
- requests
## 📝 许可证
MIT 许可证
## 🤝 贡献
漏洞报告、功能建议、问题反馈
标签:Playwright, Python模块, Python爬虫, SEO端点, URL参数, WAF绕过, Web爬虫, 代理支持, 代码生成, 动态扫描, 参数提取, 告警, 大数据, 延时随机化, 模块化工具, 渗透测试工具, 特征检测, 病毒分析, 目录扫描, 管道集成, 红队操作, 表单参数, 逆向工具, 静态扫描