nikitaB-CS/SubDirX
GitHub: nikitaB-CS/SubDirX
基于 Python/Flask 的 Web 侦察套件,集子域名枚举、目录暴力破解与 DNS 情报于一体,通过浏览器仪表板实时展示扫描结果。
Stars: 0 | Forks: 0
# SubDirX — Web 侦察套件

## 功能特性
- **子域名枚举** — 在发起请求前通过 DNS 验证扫描存活的子域名
- **目录暴力破解** — 通过 Soft-404 检测发现隐藏路径,以尽量减少误报
- **DNS 情报** — 获取任何域名的 A、MX、NS、TXT 和 CNAME 记录
- **通过 SSE 实时获取结果** — 使用 Server-Sent Events 将结果实时流式传输到浏览器仪表板
- **自定义字典上传** — 上传您自己的 .txt 字典以进行针对性扫描
- **多格式报告** — 将扫描结果导出为 HTML、JSON 或 TXT 格式
- **停止/重置控制** — 可随时从 UI 取消正在运行的扫描
## 技术栈
| 层级 | 技术 |
|---|---|
| 后端 | Python, Flask, AsyncIO, AioHTTP |
| 前端 | HTML, CSS, Vanilla JavaScript, SSE |
| DNS | Python socket, nslookup, subprocess |
| 报告生成 | JSON, HTML 模板引擎, 纯文本 |
## 项目结构
SubDirX/
├── app.py # Flask 服务器 & SSE 流式传输端点
├── main.py # 核心扫描引擎 (子域名、目录、DNS)
├── requirements.txt # Python 依赖项
├── reporttemplate.html # HTML 报告模板
└── templates/
└── index.html # 前端仪表板 UI
## 安装与使用
**1. 克隆仓库**
git clone https://github.com/nikitaB-CS/SubDirX.git
cd SubDirX
**2. 安装依赖项**
pip install -r requirements.txt
**3. 运行应用**
python app.py
**4. 在浏览器中打开**
http://localhost:5000
## 工作原理
1. 在仪表板中输入**域名**和**基础 URL**
2. 选择扫描类型 — 子域名、目录或两者
3. (可选) 上传自定义字典
4. 点击**运行扫描** — 结果将实时显示在仪表板上
5. 以您首选的格式下载报告
## 截图
## 扫描模式
| 模式 | 描述 |
|---|---|
| 子域名扫描 | 使用 DNS 解析 + HTTP 探测枚举子域名 |
| 目录扫描 | 通过基线对比进行路径暴力破解以提高准确性 |
| 运行两者 | 全面侦察 — 先扫描子域名,然后扫描每个子域名的目录 |
| DNS 查询 | 获取目标域名的所有 DNS 记录类型 |
## 使用的工具与概念
- 结合 AsyncIO + AioHTTP 实现 Async HTTP 请求
- 使用 Server-Sent Events (SSE) 进行实时浏览器更新
- 通过响应长度基线对比实现 Soft-404 检测
- 使用 Python socket 和 nslookup 进行 DNS 解析
- 结合后台扫描线程的多线程 Flask 服务器
## 作者
Nikita Birhade
网络安全与取证
## 免责声明
标签:AioHTTP, AsyncIO, DNS情报, DNS枚举, Docker容器, Flask, GitHub, HTML报告, Python, Server-Sent Events, SSE, Vanilla JavaScript, Web侦察, 侦察工具, 反取证, 后端开发, 多模态安全, 子域名枚举, 字典扫描, 安全评估, 密码管理, 异步扫描, 攻击面发现, 数据可视化, 无后门, 漏洞前期信息收集, 漏洞扫描前置, 白帽子工具, 白盒测试, 目录爆破, 系统安全, 网络安全, 网络安全工具, 自定义字典上传, 软404检测, 逆向工具, 隐私保护