Skip to content
HackAllSecPublic

About

XuanQiong(玄穹),一款高性能的开源漏洞库平台,中小型团队自建漏洞库的合适之选。支持漏洞提交、漏洞审核、漏洞搜索、漏洞排行榜、消息推送等功能。

Topics

Resources

Security policy

Stars

76 stars

Watchers

1 watching

Forks

Repository files navigation

简介

简体中文 | English

XuanQiong(玄穹)——一款高性能的开源漏洞库平台,适合中小型团队自建漏洞知识库、沉淀漏洞资产和管理审核流程。支持漏洞提交、漏洞审核、漏洞搜索、漏洞排行榜、动作级 RBAC、操作审计、站内消息、Webhook 推送、API Key、数据备份恢复和品牌定制等功能。

技术栈和功能

前端

  • Vite
  • Vue3
  • Element Plus
  • TypeScript

后端

  • Gin
  • GORM
  • JWT(内部会话令牌签发与校验)

支持 MySQL、PostgreSQL、SQLite3、SQL Server 等数据库,具体查看 GORM 支持的数据库。 应用层浏览器会话使用 X-Auth-Token,自动化集成使用 X-API-Key,Authorization 保留给反向代理 Basic Auth 等代理层能力。 内置漏洞类型、漏洞评分规则和积分计算规则,详情查看积分规则。

演示环境:https://demo.hackall.cn
管理员账号:admin/Admin@123
普通用户账号:test/123456

v1.1.1 发布重点

  • 完成动作级 RBAC、动态权限菜单、操作审计日志和品牌定制。
  • 新增站内消息中心、Webhook 事件推送、漏洞 CSV 导入/导出、API Key 和数据备份恢复。
  • 加固认证头隔离、附件访问控制、验证码频控、审计日志脱敏、导入导出、备份恢复和 API Key scope 控制。
  • 修复前台导航品牌区、登录页 Footer、后台侧栏折叠按钮和空状态高度等布局问题。
  • 首次启动随机生成管理员密码,首次登录后强制修改,不再在文档中提供固定默认凭据。

用户界面功能

功能 说明 前端实现情况 后端实现情况
查看漏洞 查看漏洞摘要和详情,分页查看 ✅ ✅
注册 用户注册 ✅ ✅
登录退出 用户登录和退出 ✅ ✅
忘记密码 忘记密码后重置密码 ✅ ✅
我的信息 头像、用户名、邮箱和手机号修改,积分,漏洞提交情况展示 ✅ ✅
修改个人信息 修改用户名、邮箱、手机号、密码 ✅ ✅
消息 查看漏洞审核消息和积分变动通知 ✅ ✅
我提交的漏洞 查看自己提交的漏洞 ✅ ✅
API Key / 个人访问令牌 创建、查看和删除个人 API Key,用于自动化集成 ✅ ✅
获取漏洞 获取漏洞摘要、详情 ✅ ✅
提交漏洞 提交漏洞信息 ✅ ✅
编辑漏洞 未审核通过的漏洞信息修改 ✅ ✅
附件上传 上传漏洞信息附件 ✅ ✅
附件下载 按漏洞公开状态、提交者和权限控制下载附件 ✅ ✅
简单搜索 模糊搜索 ✅ ✅
高级搜索 精确搜索 ✅ ✅
排行榜 月度、季度、年度排行榜 ✅ ✅
语言切换 支持中文和英文 ✅ ✅
品牌定制展示 展示后台配置的站点名称、Logo、页脚、帮助链接和建议反馈链接 ✅ ✅

管理员界面功能

功能 说明 前端实现情况 后端实现情况
登录退出 管理员登录和退出 ✅ ✅
忘记密码 忘记密码 ✅ ✅
修改个人信息 修改用户名、邮箱、手机号、密码 ✅ ✅
创建用户 创建用户并分配角色 ✅ ✅
查看用户 分页查看用户列表 ✅ ✅
修改用户信息 修改用户信息,包含密码、邮箱、手机号、状态和角色等 ✅ ✅
删除用户 删除管理员或普通用户信息 ✅ ✅
仪表盘 展示漏洞总数、Poc总数、Exp总数、最近新增、用户总数、管理员总数、CPU、内存、磁盘使用情况 ✅ ✅
系统设置 功能启停、登录锁定策略、邮箱、JWT、Webhook 配置 ✅ ✅
品牌定制 配置站点名称、前台/后台标题、Logo、Favicon、页脚、帮助链接和建议反馈链接 ✅ ✅
角色和权限管理 创建、修改和删除角色,为角色分配动作级权限 ✅ ✅
动态权限菜单 后台菜单按当前用户权限动态展示 ✅ ✅
操作审计日志 记录登录、配置、用户、角色、漏洞审核等操作,支持检索和详情查看 ✅ ✅
漏洞管理 添加、修改和删除漏洞类型,查看、更新、审核和删除漏洞 ✅ ✅
评分规则管理 添加、修改和删除评分规则 ✅ ✅
语言切换 支持中文和英文 ✅ ✅
消息推送 触发漏洞审核、积分变动等事件后的站内消息或 Webhook 推送 ✅ ✅
漏洞导入/导出 通过 CSV 批量导入待审核漏洞并导出漏洞数据 ✅ ✅
API Key 管理 创建、查看和删除个人 API Key,支持 X-API-Key 调用接口 ✅ ✅
数据备份和恢复 导出 JSON 备份并按权限恢复核心数据 ✅ ✅

安全和运维能力

功能 说明 实现情况
应用鉴权头隔离 应用层仅使用 X-Auth-Token,避免与反向代理 Basic Auth 的 Authorization 头冲突 ✅
初始管理员密码 首次启动随机生成管理员密码,登录后强制修改密码 ✅
强制重新登录 用户修改密码或角色权限变化后,旧 Token 失效 ✅
附件访问控制 附件下载按漏洞公开状态、提交者和管理权限校验 ✅
验证码频控 验证码接口包含邮箱、IP 和全局频控 ✅
敏感信息脱敏 系统配置、审计日志和响应记录对 Token、密码、Secret 等敏感信息脱敏 ✅
上传限制 漏洞附件限制类型和大小,当前最大 10 MB ✅
API Key 鉴权 支持 X-API-Key 长期令牌,服务端仅保存哈希,明文只在创建时显示一次 ✅
漏洞导入/导出 支持后台 CSV 导入和导出,导入数据默认进入待审核流程 ✅
数据备份恢复 支持后台导出和恢复 JSON 备份,受 backup.manage 权限保护 ✅

近期补齐的能力

功能 当前状态 说明
站内消息中心 已实现 漏洞审核完成后会写入用户站内消息,前台支持查看和标记已读。
事件消息推送 已实现 漏洞审核完成后按系统设置发送钉钉或企业微信 Webhook 通知。
漏洞导入/导出 已实现 后台支持 CSV 导入和导出,导入漏洞默认进入待审核状态。
API Key / 个人访问令牌 已实现 支持创建、查看和删除个人 API Key,调用接口时使用 X-API-Key。
数据备份和恢复 已实现 后台支持 JSON 备份导出和恢复,恢复操作受 RBAC 权限保护。

目录结构

XuanQiong/
│
├── backend/               # 后端目录
│   ├── config/            # 配置解析和验证
│   ├── controllers/       # 控制器,处理路由和逻辑
│   ├── models/            # 数据模型
│   ├── routes/            # 路由定义
│   ├── types/             # 类型定义
│   ├── utils/             # 工具和辅助函数
│
├── frontend/              # 用户界面目录,Vue3+Vite+Element Plus+Typescript
|   ├── dist               # build生成的目录
│   │   └── assets/        # 静态资源,如图片、样式等
│   │   └── index.html     # 用户端入口文件
|
├── admin/                 # 后台管理界面目录,Vue3+Vite+Element Plus+Typescript
│   ├── dist               # build生成的目录
│   │   └── assets/        # 静态资源,如图片、样式等
│   │   └── index.html     # 后台入口文件
|
├── config.yaml            # 配置文件
├── go.mod                 # Go Modules 依赖文件
├── go.sum
├── main.go                # 主入口
└── README.md              # 项目说明文件

部署方式

支持前后端一体和前后端分离,已在 MySQL 和 Sqlite 测试,建议使用MySQL。如果遇到问题请查看FAQ。
使用 sqlite 时,需要设置环境变量 CGO_ENABLED=1 后重新 build,Releases 中的二进制文件使用 CGO_ENABLED=0 编译。

前后端一体化

默认使用一体化模式启动,步骤如下:

  • 修改 config.yaml 中的数据库配置,修改数据库名称,初始化时自动创建数据库。
  • 运行 go run main.go 或 Releases 中的二进制文件即可。

启动后会随机生成管理员密码。首次使用该密码登录后,系统会强制管理员修改密码。

前后端分离

用户前端文件和管理员前端文件独立,可分别部署在不同web目录下。后台服务通过 config.yaml 中的 start_mode 参数切换启动模式。

  • 前端配置 src/api.ts 中 baseURL 地址,然后编译。
  • 编译后的用户前端文件位于:frontend/dist 目录下,复制目录下的文件到 web 目录即可。
  • 编译后的管理员前端文件位于:admin/dist 目录下,复制目录下的文件到 web 目录即可。
  • 后端配置CORS、运行模式,修改 config.yaml 中的 start_mode, allow_origins, allow_methods 和 allow_headers 参数,然后运行即可。

ChangeLog

CHANGELOG

API

About

XuanQiong(玄穹),一款高性能的开源漏洞库平台,中小型团队自建漏洞库的合适之选。支持漏洞提交、漏洞审核、漏洞搜索、漏洞排行榜、消息推送等功能。

Topics

Resources

Security policy

Stars

76 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages