一款轻量级 Java CLI 工具,用于抓取、展示和导出 Exploit-DB 的漏洞数据
ExploitDB 搜索工具
是一个用 Java 编写的命令行应用,支持自动化爬取 Exploit-DB 的公开漏洞信息,支持以表格形式展示并可导出为 CSV 文件。
本工具适合:
- 安全研究员快速检索漏洞数据
- 企业安全响应人员用于建立本地漏洞知识库
- 自动化漏洞分析链路中的数据源接口模块
- ✅ CLI 交互式操作体验,适合终端用户
- ✅ 自定义爬取页数(默认 50)
- ✅ 中文表格美观输出,自动对齐 & 截断优化
- ✅ 自动跳过重复数据,支持增量更新
- ✅ 面向对象结构,易于扩展与维护
├── 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
mvn clean compile exec:java
mvn clean package
首次运行时会:
- 自动创建数据库表(如果不存在)
- 提示你输入要爬取的页数(留空则默认 50 页)
- 是否导出为 CSV 文件
- 展示爬取结果(以 CLI 表格形式输出)
确保你已安装:
- Java 17+
- Maven
- 本地 MySQL 数据库,并设置
.env
或配置常量中的数据库连接信息
# 编译
mvn clean package
# 运行
mvn clean compile exec:java
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 |
+------+------------------------------------------+------------+-----------------+------------+------------+
请确认你引入了 Apache Commons Text:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>1.10.0</version>
</dependency>
请确认控制台字符集为 UTF-8,并确保你在代码中使用了:
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 来帮助改进这个项目!
- Fork 本仓库
- 创建您的特性分支 (git checkout -b feature/AmazingFeature)
- 提交您的更改 (git commit -m 'Add some AmazingFeature')
- 推送到分支 (git push origin feature/AmazingFeature)
- 打开一个 Pull Request
- 作者:钟智强
- 邮箱:johnmelodymel@qq.com
- QQ:3072486255
- 微信:ctkqiang
- 支持关键字搜索(如作者、平台筛选)
- 图形化桌面前端(JavaFX / Electron)
👉 阅读完整博客教程请看:《从零教你构建 Java Web 爬虫(纯原生,无 Jsoup)》
这不仅是个工具,也是我热爱的安全世界的一部分 ❤️
欢迎加入我们的技术交流群,与其他安全研究者分享经验和知识!
本项目采用 木兰宽松许可证 (Mulan PSL) 进行许可。
有关详细信息,请参阅 LICENSE 文件。
(魔法契约要保管好哟~)
感谢您使用本项目!您的支持是开源持续发展的核心动力。
每一份捐赠都将直接用于:
✅ 服务器与基础设施维护(魔法城堡的维修费哟~)
✅ 新功能开发与版本迭代(魔法技能树要升级哒~)
✅ 文档优化与社区建设(魔法图书馆要扩建呀~)
点滴支持皆能汇聚成海,让我们共同打造更强大的开源工具!
(小仙子们在向你比心哟~)
🙌 感谢您成为开源社区的重要一员!
💬 捐赠后欢迎通过社交平台与我联系,您的名字将出现在项目致谢列表!