Skip to content

HackAllSec/XuanQiong

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-KeyAuthorization 保留给反向代理 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_methodsallow_headers 参数,然后运行即可。

ChangeLog

CHANGELOG

API

About

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

Topics

Resources

Security policy

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages