Skip to content

ctkqiang/exploitdb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ExploitDB 搜索工具 🔍🧨

一款轻量级 Java CLI 工具,用于抓取、展示和导出 Exploit-DB 的漏洞数据


demo


📌 项目简介

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

Maven 来打包成 jar

mvn clean package

首次运行时会:

  1. 自动创建数据库表(如果不存在)
  2. 提示你输入要爬取的页数(留空则默认 50 页)
  3. 是否导出为 CSV 文件
  4. 展示爬取结果(以 CLI 表格形式输出)

📦 编译方式

确保你已安装:

  • Java 17+
  • Maven
  • 本地 MySQL 数据库,并设置 .env 或配置常量中的数据库连接信息
# 编译
mvn clean package

# 运行
mvn clean compile exec:java

🗃 数据库结构(MySQL)

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:

<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-text</artifactId>
  <version>1.10.0</version>
</dependency>

2. 中文乱码?

请确认控制台字符集为 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 来帮助改进这个项目!

  1. Fork 本仓库
  2. 创建您的特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交您的更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开一个 Pull Request

👥 作者


🧪 未来计划

  • 支持关键字搜索(如作者、平台筛选)
  • 图形化桌面前端(JavaFX / Electron)

👉 阅读完整博客教程请看:《从零教你构建 Java Web 爬虫(纯原生,无 Jsoup)》


🫶 Star 一下让我知道你看见我啦!

这不仅是个工具,也是我热爱的安全世界的一部分 ❤️

🤝 加入技术交流群

欢迎加入我们的技术交流群,与其他安全研究者分享经验和知识!


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

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

许可证

本项目采用 木兰宽松许可证 (Mulan PSL) 进行许可。
有关详细信息,请参阅 LICENSE 文件。
(魔法契约要保管好哟~)

License: Mulan PSL v2

🌟 开源项目赞助计划

用捐赠助力发展

感谢您使用本项目!您的支持是开源持续发展的核心动力。
每一份捐赠都将直接用于:
✅ 服务器与基础设施维护(魔法城堡的维修费哟~)
✅ 新功能开发与版本迭代(魔法技能树要升级哒~)
✅ 文档优化与社区建设(魔法图书馆要扩建呀~)

点滴支持皆能汇聚成海,让我们共同打造更强大的开源工具!
(小仙子们在向你比心哟~)


🌐 全球捐赠通道

国内用户


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

🟢 微信支付(小绿龙在收金币哟~)

国际用户


📌 开发者社交图谱

技术交流

社交互动


🙌 感谢您成为开源社区的重要一员!
💬 捐赠后欢迎通过社交平台与我联系,您的名字将出现在项目致谢列表!

Packages

No packages published

Contributors 2

  •  
  •