Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-57821-PoC-Exploit — 🔐 CVE-2026-57821 - Apache Fineract SQL 注入工具包 📚 两个用于授权安全测试的 Python 脚本:verifier.py(安全检测,无数据提取)和 exploit.py(深度分析)。支持 11 种数据库类型。非常适合理解 SQL 注入漏洞。仅限合法测试 ⚠️ 仅供教育与研究用途。 | Kitploit
工具/GitHubGitHub/tc4dy/cve-2026-57821-poc-exploit
静态分析漏洞分析代码分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育数据库安全

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHub
tc4dy/cve-2026-57821-poc-exploit

CVE-2026-57821-PoC-Exploit

🔐 CVE-2026-57821 - Apache Fineract SQL 注入工具包 📚 两个用于授权安全测试的 Python 脚本:verifier.py(安全检测,无数据提取)和 exploit.py(深度分析)。支持 11 种数据库类型。非常适合理解 SQL 注入漏洞。仅限合法测试 ⚠️ 仅供教育与研究用途。

查看仓库
3417天前尚未审核

CVE-Picture

CVE-2026-57821 – Apache Fineract SQL 注入

法律与道德声明
本工具包严格仅供教育、培训及经授权的安全测试用途提供。
未经明确书面许可对任何系统进行未授权使用均属违法行为,并违反计算机犯罪相关法律。
作者对滥用或损害不承担任何责任。
您须对自己的行为承担全部责任。


漏洞概述

CVE-2026-57821 是在 Apache Fineract 的办公室列表 API 端点中发现的 SQL 注入漏洞。

受影响组件

属性详情
端点/api/v1/offices
参数orderBy
方法GET
是否需要认证是(仅限已认证用户)
受影响版本Apache Fineract ≤ 1.14.0
修复版本Apache Fineract 1.15.0

工作原理

该漏洞存在的原因是 orderBy 参数被直接嵌入 SQL 查询中,未经过适当的清理。拥有有效凭据的攻击者可以将包裹在括号 () 中的子查询注入到 orderBy 参数中。

为何此漏洞可绕过先前的修复:

  • CVE-2024-32838 引入了 ColumnValidator 来清理 ORDER BY 子句
  • 该验证器无法检测括号内的裸子查询
  • 这使得在 ORDER BY 上下文中可执行任意 SQL

攻击向量示例:

GET /api/v1/offices?orderBy=(SELECT CASE WHEN (1=1) THEN pg_sleep(5) ELSE pg_sleep(0) END)&limit=1

潜在影响

影响描述
数据窃取基于时间的盲 SQL 注入可提取敏感数据库内容
拒绝服务重型查询可耗尽连接池资源
信息泄露基于错误的技术可揭示数据库结构和数据

发现与披露

属性详情
发现者 / 报告者Terence Monteiro(Apache Fineract 团队)
公开披露日期2026 年 7 月 14 日
修复版本Apache Fineract 1.15.0
官方公告Apache 邮件列表
GitHub 修复PR #6048

支持的数据库系统

本工具包可自动检测并适配 11 种不同数据库后端的利用技术:

数据库检测方法利用技术
PostgreSQL基于时间(pg_sleep)基于时间的盲注
MySQL基于时间(SLEEP)基于时间的盲注
MariaDB基于时间 + @@version_comment基于时间的盲注
MSSQL基于错误(CONVERT 失败)基于错误的注入
Oracle基于时间(DBMS_LOCK.SLEEP)基于时间的盲注
SQLite重型查询(笛卡尔连接)基于时间(重型)
Firebird重型查询(笛卡尔连接)基于时间(重型)
DB2重型查询(笛卡尔连接)基于时间(重型)
Informix重型查询(笛卡尔连接)基于时间(重型)
H2重型查询(笛卡尔连接)基于时间(重型)
未知(通用)回退至 PostgreSQL基于时间

工具包组件

本项目提供两个 Python 脚本,用于不同的安全评估场景:

verifier.py – 安全且精简的验证工具

用途: 在不提取数据的情况下快速证明漏洞存在。

功能:

  • 发送针对特定数据库的测试载荷
  • 检测时间延迟或错误消息
  • 针对每种数据库类型报告 VULNERABLE 或 NOT VULNERABLE
  • 不窃取任何数据

优势:

  • 速度极快(数秒内完成)
  • 法律风险低(仅验证存在性)
  • 适合初步安全扫描
  • 输出便于生成合规报告

使用场景: 用于确定目标是否存在漏洞的初步评估。

exploit.py – 综合安全分析器

用途: 全面利用该漏洞以提取数据库信息。

功能:

  • 自动检测数据库类型
  • 使用二分查找逐字符提取
  • 获取:版本、当前用户、数据库名、表列表(可配置)
  • MSSQL:基于报错的提取
  • 其他:基于时间的提取,并进行基线校准

优势:

  • 提供影响的具体证据
  • 展示漏洞的完整影响范围
  • 详细的日志记录,输出带颜色编码

使用场景: 在确认漏洞后进行深入的安全分析。

关键区别: verifierPoC.py 告诉你是否存在漏洞;exploit.py 向你展示可以提取什么。两者在安全评估工作流中扮演不同但互补的角色。


安装与配置

前提条件

  • Python 3.6+
  • requests 库
pip install requests

配置变量

在两个脚本的顶部编辑以下变量:

变量描述默认值
TARGETFineract API URLhttp://localhost:8080/fineract-provider/api/v1/offices
USERNAMEAPI 认证用户名mifos
PASSWORDAPI 认证密码password
TENANT_ID租户标识符default
BASE_SLEEP基于时间的测试的休眠时长(exploit.py)6
SLEEP_SECONDS基于时间的测试的休眠时长(verifier.py)5
TIMEOUTHTTP 请求超时25(exploit)/ 15(verifier)
MAX_RETRIES失败请求的重试次数2

使用指南

exploit.py - 深度扫描

python3 exploit.py

预期输出:

CVE-2026-57821 - Apache Fineract Vulnerability Verifier
══════════════════════════════════════════════════════════════════════════════════════
@tc4dy is here :) Good Luck!

CONNECTION SUCCESS
BASELINE: 0.234s
STARTING VULNERABILITY VERIFICATION
VERIFICATION RESULTS
PostgreSQL: VULNERABLE
MySQL: NOT VULNERABLE
MariaDB: NOT VULNERABLE
Oracle: NOT VULNERABLE
MSSQL: NOT VULNERABLE
CONCLUSION: TARGET IS VULNERABLE (CVE-2026-57821 CONFIRMED)

Interpretation: If VULNERABLE appears for any database type, the target is affected.

技术规格

CVSS 评分 指标 值 CVSS v3.1 基础评分 8.1(高) 向量 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H 攻击向量 网络 所需权限 低 用户交互 无 EPSS 评分

0.29%(30 天内被利用的概率)

CWE 映射

CWE‑89:SQL 命令中使用的特殊元素的不当中和(“SQL 注入”)

技术深入剖析

载荷为何有效

Apache Fineract 1.14.0 中的易受攻击代码:

// Simplified vulnerable logic
String orderBy = request.getParameter("orderBy");
if (ColumnValidator.isValid(orderBy)) {
    // VALIDATOR FAILS FOR: "(SELECT ...)"
    // Only checks against simple column names
    String sql = "SELECT * FROM offices ORDER BY " + orderBy;
    // Executes query with user input directly
}

攻击载荷示例:

GET /api/v1/offices?orderBy=(SELECT CASE WHEN (1=1) THEN pg_sleep(5) ELSE pg_sleep(0) END)&limit=1

生成的 SQL:

SELECT * FROM offices ORDER BY (SELECT CASE WHEN (1=1) THEN pg_sleep(5) ELSE pg_sleep(0) END)

ColumnValidator 会检查列名,但遗漏了嵌套子查询,从而允许任意 SQL 执行。

缓解措施

操作优先级
升级到 Apache Fineract 1.15.0+严重
应用 PR #6048 补丁严重
WAF 规则: 阻止包含 (SELECT、SLEEP(、pg_sleep(、WAITFOR 的 orderBy高
监控日志,查找带有括号或子查询关键字的 orderBy高
数据库连接池监控,以检测资源耗尽中
下载工具