S8C88/ExploitDB-CLI
GitHub: S8C88/ExploitDB-CLI
一款基于本地 SQLite 缓存的 ExploitDB 命令行检索工具,支持离线搜索漏洞利用并通过 API 实时获取 CVE 详情。
Stars: 0 | Forks: 0
# ExploitDB-CLI
带有 CVE 映射的本地 ExploitDB 浏览器。
```
_____ _ _ _ ____ ____ _ ___
| ____| | ___ ___(_) |_| _ \| _ \| | |_ _|
| _| | |/ _ \/ __| | __| | | | | | | | | |
| |___| | __/ (__| | |_| |_| | |_| | |___ | |
|_____|_|\___|\___|_|\__|____/|____/|_____|___|
```
从你的终端搜索、浏览和探索 ExploitDB 归档。彩色输出,通过实时 API 查询进行 CVE 丰富,以及用于离线访问的本地 SQLite 缓存。
## 功能
- **按关键词搜索** — 查找匹配任意关键词的漏洞利用
- **按 CVE 搜索** — 查找绑定到特定 CVE 标识符的漏洞利用
- **按平台搜索** — 按目标平台过滤(linux、windows、webapps...)
- **按作者搜索** — 查找特定研究人员的所有漏洞利用
- **组合过滤器** — 将所有搜索参数混合使用
- **CVE 查询** — 通过 cve.circl.lu API 进行实时丰富,并带有本地缓存
- **查看漏洞利用详情** — 显示完整的漏洞利用信息 + 源码预览
- **彩色输出** — 使用 colorama 实现清晰的视觉层级
- **本地缓存** — 基于 SQLite,用于快速离线搜索
- **更新命令** — 将 ExploitDB CSV 导入本地缓存
## 安装说明
```
pip install -r requirements.txt
```
你还需要 ExploitDB 归档:
```
# Clone 官方 ExploitDB repo
git clone https://gitlab.com/exploit-database/exploitdb.git ~/.exploitdb
# Import 到本地 cache
python3 exploitdb_cli.py update ~/.exploitdb/exploits.csv
```
## 用法
```
# 按 keyword 搜索
python3 exploitdb_cli.py search apache struts
# 按 CVE 搜索
python3 exploitdb_cli.py search --cve CVE-2021-41773
# 使用多个 filter 搜索
python3 exploitdb_cli.py search --platform linux --keyword privesc
# 按 author 搜索
python3 exploitdb_cli.py search --author metasploit
# 显示带有 CVE 信息的 exploit 详情
python3 exploitdb_cli.py show 12345
# 搜索 + 显示 CVE 详情
python3 exploitdb_cli.py search --cve CVE-2021-41773 --cve-detail
# 从自定义路径更新本地 cache
python3 exploitdb_cli.py update /path/to/exploitdb/exploits.csv
```
### 命令
| 命令 | 描述 |
|---------|-------------|
| `search` | 按关键词、CVE、平台或作者搜索漏洞利用 |
| `show` | 显示特定漏洞利用 ID 的完整详情 |
| `update` | 将 ExploitDB CSV 导入本地 SQLite 缓存 |
### 搜索选项
| 标志 | 描述 |
|------|-------------|
| `keyword` | 一个或多个搜索词(空格分隔) |
| `--cve` | 要搜索的 CVE 标识符 |
| `--platform` | 目标平台过滤器 |
| `--author` | 作者名称过滤器 |
| `--cve-detail` | 显示来自 circl.lu 的实时 CVE 详情 |
| `-v`, `--verbose` | 在结果中显示文件路径 |
## 架构
```
flowchart TD
CLI["CLI
argparse"] --> Search["search command"] CLI --> Show["show command"] CLI --> Update["update command"] Search --> Cache["SQLite Cache
~/.exploitdb/cache.db"] Search --> CVE_API["cve.circl.lu API"] Show --> Cache Show --> Source["Exploit source file"] Update --> CSV["ExploitDB CSV
exploits.csv"] CSV --> Cache CVE_API --> CVE_Cache["CVE Cache
(24h TTL)"] Cache --> Display["Colorized Output
colorama"] CVE_Cache --> Display ``` ``` sequenceDiagram participant User participant CLI as exploitdb_cli.py participant Cache as SQLite Cache participant API as cve.circl.lu User->>CLI: search --cve CVE-2021-41773 CLI->>Cache: SELECT * FROM exploits WHERE cve LIKE '%CVE-2021-41773%' Cache-->>CLI: [ExploitEntry(12345), ...] CLI->>User: Print exploit results (colorized) User->>CLI: show 12345 CLI->>Cache: SELECT * FROM exploits WHERE id = 12345 Cache-->>CLI: ExploitEntry details CLI->>Cache: Check CVE cache alt CVE not cached CLI->>API: GET /api/cve/CVE-2021-41773 API-->>CLI: CVE details (JSON) CLI->>Cache: Store in cve_cache end CLI->>User: Print exploit + CVE details ``` ## 数据流 1. **初始设置** — 将 ExploitDB CSV 导入本地 SQLite 缓存 2. **搜索** — 针对缓存运行过滤查询(快速、离线) 3. **CVE 丰富** — 按需向 cve.circl.lu 发起 API 调用,缓存 24 小时 4. **源码预览** — `show` 命令从本地文件系统读取漏洞利用源码 ## 开发 ``` # 安装 dev deps pip install -r requirements.txt # 运行 tests python3 -m pytest tests/ -v # 测试特定 module python3 -m pytest tests/test_exploitdb_cli.py::TestSearch -v ``` ## 许可证 MIT — 2026 S8C88
argparse"] --> Search["search command"] CLI --> Show["show command"] CLI --> Update["update command"] Search --> Cache["SQLite Cache
~/.exploitdb/cache.db"] Search --> CVE_API["cve.circl.lu API"] Show --> Cache Show --> Source["Exploit source file"] Update --> CSV["ExploitDB CSV
exploits.csv"] CSV --> Cache CVE_API --> CVE_Cache["CVE Cache
(24h TTL)"] Cache --> Display["Colorized Output
colorama"] CVE_Cache --> Display ``` ``` sequenceDiagram participant User participant CLI as exploitdb_cli.py participant Cache as SQLite Cache participant API as cve.circl.lu User->>CLI: search --cve CVE-2021-41773 CLI->>Cache: SELECT * FROM exploits WHERE cve LIKE '%CVE-2021-41773%' Cache-->>CLI: [ExploitEntry(12345), ...] CLI->>User: Print exploit results (colorized) User->>CLI: show 12345 CLI->>Cache: SELECT * FROM exploits WHERE id = 12345 Cache-->>CLI: ExploitEntry details CLI->>Cache: Check CVE cache alt CVE not cached CLI->>API: GET /api/cve/CVE-2021-41773 API-->>CLI: CVE details (JSON) CLI->>Cache: Store in cve_cache end CLI->>User: Print exploit + CVE details ``` ## 数据流 1. **初始设置** — 将 ExploitDB CSV 导入本地 SQLite 缓存 2. **搜索** — 针对缓存运行过滤查询(快速、离线) 3. **CVE 丰富** — 按需向 cve.circl.lu 发起 API 调用,缓存 24 小时 4. **源码预览** — `show` 命令从本地文件系统读取漏洞利用源码 ## 开发 ``` # 安装 dev deps pip install -r requirements.txt # 运行 tests python3 -m pytest tests/ -v # 测试特定 module python3 -m pytest tests/test_exploitdb_cli.py::TestSearch -v ``` ## 许可证 MIT — 2026 S8C88
标签:Python, 域名收集, 安全规则引擎, 无后门, 漏洞利用库, 漏洞查询, 逆向工具