# ExploitDB 搜索工具 🔍🧨 > 一款轻量级 Java CLI 工具,用于抓取、展示和导出 Exploit-DB 的漏洞数据 --- ![demo](./assets/demo.png) --- ## 📌 项目简介 `ExploitDB 搜索工具` 是一个用 Java 编写的命令行应用,支持自动化爬取 [Exploit-DB](https://www.exploit-db.com) 的公开漏洞信息,支持以表格形式展示并可导出为 CSV 文件。 本工具适合: - 安全研究员快速检索漏洞数据 - 企业安全响应人员用于建立本地漏洞知识库 - 自动化漏洞分析链路中的数据源接口模块 --- ## ✨ 项目特性 - ✅ CLI 交互式操作体验,适合终端用户 - ✅ 自定义爬取页数(默认 50) - ✅ 中文表格美观输出,自动对齐 & 截断优化 - ✅ 自动跳过重复数据,支持增量更新 - ✅ 面向对象结构,易于扩展与维护 --- ## 程序流程 ![sequence](./assets/flow.png) --- ## 🧠 架构模块 ```bash ├── README.md ├── pom.xml ├── scripts │ └── db.sql ├── src │ ├── main │ │ ├── java │ │ │ └── xin │ │ │ └── ctkqiang │ │ │ ├── Main.java │ │ │ ├── config │ │ │ │ └── Configuration.java │ │ │ ├── controller │ │ │ │ ├── DatabaseController.java │ │ │ │ ├── ExploitDbController.java │ │ │ │ └── UserUtil.java │ │ │ └── dto │ │ │ └── Exploit.java │ │ └── resources │ └── test │ └── java └── target ``` --- ## 💻 使用方法 ```bash mvn clean compile exec:java ``` ## Maven 来打包成 jar ```bash mvn clean package ``` 首次运行时会: 1. 自动创建数据库表(如果不存在) 2. 提示你输入要爬取的页数(留空则默认 50 页) 3. 是否导出为 CSV 文件 4. 展示爬取结果(以 CLI 表格形式输出) --- ## 📦 编译方式 确保你已安装: - Java 17+ - Maven - 本地 MySQL 数据库,并设置 `.env` 或配置常量中的数据库连接信息 ```bash # 编译 mvn clean package # 运行 mvn clean compile exec:java ``` --- ## 🗃 数据库结构(MySQL) ```sql CREATE DATABASE IF NOT EXISTS ExploitDB; USE ExploitDB; CREATE TABLE records ( id VARCHAR(64) NOT NULL COMMENT '唯一标识符', description TEXT COMMENT '描述信息', date VARCHAR(20) COMMENT '日期(字符串格式)', author VARCHAR(100) COMMENT '作者名称', type VARCHAR(50) COMMENT '记录类型', platform VARCHAR(50) COMMENT '所属平台', created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (id) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '记录表'; ``` --- ## 🧪 示例输出(部分) ``` +------+------------------------------------------+------------+-----------------+------------+------------+ | 编号 | 描述 | 日期 | 作者 | 类型 | 平台 | +------+------------------------------------------+------------+-----------------+------------+------------+ | 1 | Microsoft IIS - WebDAV 'ntdll.dll' Re... | 2003-03-23 | kralor | remote | Windows | | 2 | Linux Kernel 2.2.x - 'ptrace()' Loca... | 2003-04-10 | Wojciech Pur... | local | Linux | +------+------------------------------------------+------------+-----------------+------------+------------+ ``` --- ## ❓ 常见问题 #### 1. 程序运行报 `StringEscapeUtils` 不存在? 请确认你引入了 Apache Commons Text: ```xml org.apache.commons commons-text 1.10.0 ``` #### 2. 中文乱码? 请确认控制台字符集为 UTF-8,并确保你在代码中使用了: ```java System.setOut(new PrintStream(System.out, true, "UTF-8")); ``` --- ## 👩‍💻 作者信息 - 👩🏻‍💻 项目作者:灵儿(ctkqiang) - 🐱 GitHub:`https://github.com/ctkqiang` - 📚 Gitcode:`https://gitcode.com/ctkqiang_sr` - 📝 个人博客:`https://blog.ctkqiang.com` - 📮 反馈邮箱:`ctkqiang@dingtalk.com` --- ## 🤝 贡献指南 欢迎提交 Issue 和 Pull Request 来帮助改进这个项目! 1. Fork 本仓库 2. 创建您的特性分支 (git checkout -b feature/AmazingFeature) 3. 提交您的更改 (git commit -m 'Add some AmazingFeature') 4. 推送到分支 (git push origin feature/AmazingFeature) 5. 打开一个 Pull Request --- ## 👥 作者 - 作者:钟智强 - 邮箱:johnmelodymel@qq.com - QQ:3072486255 - 微信:ctkqiang --- ## 🧪 未来计划 - [ ] 支持关键字搜索(如作者、平台筛选) - [ ] 图形化桌面前端(JavaFX / Electron) --- 👉 阅读完整博客教程请看:[《从零教你构建 Java Web 爬虫(纯原生,无 Jsoup)》](https://blog.csdn.net/tsz520eee/article/details/148294259) --- ## 🫶 Star 一下让我知道你看见我啦! 这不仅是个工具,也是我热爱的安全世界的一部分 ❤️ ### 🤝 加入技术交流群 欢迎加入我们的技术交流群,与其他安全研究者分享经验和知识!

QQ交流群: 934810107
(扫码加入,一起探讨安全技术)

钉钉交流群
(扫码加入,一起探讨安全技术)
--- ## 许可证 本项目采用 **木兰宽松许可证 (Mulan PSL)** 进行许可。 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。 (魔法契约要保管好哟~) [![License: Mulan PSL v2](https://img.shields.io/badge/License-Mulan%20PSL%202-blue.svg)](http://license.coscl.org.cn/MulanPSL2) ## 🌟 开源项目赞助计划 ### 用捐赠助力发展 感谢您使用本项目!您的支持是开源持续发展的核心动力。 每一份捐赠都将直接用于: ✅ 服务器与基础设施维护(魔法城堡的维修费哟~) ✅ 新功能开发与版本迭代(魔法技能树要升级哒~) ✅ 文档优化与社区建设(魔法图书馆要扩建呀~) 点滴支持皆能汇聚成海,让我们共同打造更强大的开源工具! (小仙子们在向你比心哟~) --- ### 🌐 全球捐赠通道 #### 国内用户

🔵 支付宝(小企鹅在收金币哟~)

🟢 微信支付(小绿龙在收金币哟~)
#### 国际用户
--- ### 📌 开发者社交图谱 #### 技术交流
#### 社交互动
--- 🙌 感谢您成为开源社区的重要一员! 💬 捐赠后欢迎通过社交平台与我联系,您的名字将出现在项目致谢列表!