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
标签:Python, 域名收集, 安全规则引擎, 无后门, 漏洞利用库, 漏洞查询, 逆向工具