Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-42167 — CVE-2026-42167 的技术分析与概念验证,这是 ProFTPD mod_sql 中的一个严重 SQL 注入漏洞,可实现身份验证绕过、后门用户注入和远程代码执行。 | Kitploit
工具/GitHubGitHub/kaleth4/cve-2026-42167
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育红队
GitHubkaleth4/cve-2026-42167

CVE-2026-42167

CVE-2026-42167 的技术分析与概念验证,这是 ProFTPD mod_sql 中的一个严重 SQL 注入漏洞,可实现身份验证绕过、后门用户注入和远程代码执行。

查看仓库
3个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-42167: ProFTPD mod_sql 中的 SQL 注入

📋 执行摘要

CVE-2026-42167 是 ProFTPD 的 mod_sql 模块中的一个严重 SQL 注入漏洞,可导致身份验证绕过、后门用户注入和远程代码执行(RCE)。

属性值
类型SQL 注入(CWE-89)
严重性高/严重
CVSS v38.1
组件ProFTPD < 1.3.9a 中的 mod_sql
报告方ZeroPath Research
日期2026 年 4 月 28 日

🔍 技术描述

问题:is_escaped_text() 中的弱验证

ProFTPD 使用 is_escaped_text() 函数来确定某个值在插入 SQL 查询之前是否已被清理。该函数假定任何满足以下条件的输入:

  • 以单引号 ' 开头
  • 以单引号 ' 结尾
  • 不包含内部单引号

...已被转义,无需进一步处理。

漏洞利用

攻击者可以发送恶意用户名,例如:

root@kitploit:~
USER ' || (SELECT 1) ||'

当它被插入到如下 SQL 查询中时:

root@kitploit:~
INSERT "'%U', '%r', '%m'" activity_log

会产生:

root@kitploit:~
INSERT "'' || (SELECT 1) || ''" activity_log

该 payload 会作为任意 SQL 执行,因为 || 运算符将注入命令周围的空字符串连接起来。


⚠️ 影响场景

1️⃣ 远程代码执行(RCE)

要求:

  • PostgreSQL 后端
  • 具有超级用户权限的数据库用户
  • 启用了使用 %U 或 %{basename} 变量的 SQL 日志记录

技术:

root@kitploit:~
COPY (SELECT 1) TO PROGRAM '恶意命令'

以 postgres 用户身份执行操作系统级命令。

2️⃣ 身份验证绕过

要求:

  • 已启用 SQLAuthenticate
  • 在 SQLLog ERR_*(预认证)中使用 %U 变量的 SQL 日志记录

技术:

root@kitploit:~
INSERT INTO users (username, password, uid, homedir) 
VALUES ('attacker', 'password_hash', 0, '/')

攻击者注入一个具有 uid=0(root)且可访问整个文件系统的后门用户。

3️⃣ 数据泄露

要求:

  • 任何 SQL 后端
  • 已启用 SQL 日志记录

技术: 基于时间的盲 SQL 注入,逐字符提取凭据。


📊 攻击向量

攻击者控制的变量

变量含义范围
%U原始用户名(认证前)预认证
%A匿名登录密码预认证
%J命令参数预认证
%mFTP 动词(STOR、RETR 等)预认证
%{basename}文件名的组成部分认证后
%lident 响应(RFC 1413)预认证(如果 identd 可用)

利用路径

预认证(最严重):

root@kitploit:~
%U + SQLLog ERR_* → 无需凭据

认证后:

root@kitploit:~
%{basename} + SQLLog STOR → 需要任何有效的 FTP 用户

🛡️ 缓解与修复

✅ 推荐修复方案

立即升级到 ProFTPD 1.3.9a 或更高版本:

root@kitploit:~
# 检查当前版本
proftpd -v

# 升级(以 Debian/Ubuntu 为例)
sudo apt-get update
sudo apt-get install proftpd-basic=1.3.9a-1

🔧 临时缓解措施

如果无法立即升级:

  1. 禁用 SQL 日志记录:
root@kitploit:~
# 注释或删除 proftpd.conf 中的这些行
# SQLLog * log_activity
# SQLLog ERR_* log_activity
  1. 应用最小权限原则:
root@kitploit:~
-- 在 PostgreSQL 中,创建没有超级用户权限的用户
CREATE USER proftpd_user WITH PASSWORD 'secure_password';
GRANT SELECT, INSERT ON activity_log TO proftpd_user;
-- 不要授予 SUPERUSER
  1. 监控漏洞利用尝试:
root@kitploit:~
TraceLog /var/log/proftpd/trace.log
Trace sql:17

🔎 漏洞验证

入侵指标

在 ProFTPD 的跟踪日志中搜索(启用 Trace sql:17):

root@kitploit:~
text 'payload' is already escaped, skipping escaping it again

此消息表示绕过尝试已被易受攻击的引擎处理。

验证命令

root@kitploit:~
# 启用详细跟踪
echo "Trace sql:17" >> /etc/proftpd/proftpd.conf

# 重启 ProFTPD
sudo systemctl restart proftpd

# 监控日志
tail -f /var/log/proftpd/trace.log | grep "already escaped"

📦 版本信息

版本状态
< 1.3.9❌ 易受攻击
1.3.9❌ 易受攻击
≥ 1.3.9a✅ 已修补
≥ 1.3.10rc1✅ 已修补

🧪 概念验证(PoC)

官方仓库

GitHub: ZeroPathAI/proftpd-CVE-2026-42167-poc

使用 Docker 快速配置

root@kitploit:~
# 克隆仓库
git clone https://github.com/ZeroPathAI/proftpd-CVE-2026-42167-poc.git
cd proftpd-CVE-2026-42167-poc

# 要求
# - Docker
# - Git
# - Python 3.10+
# - uv(Python 包管理器)

# 配置易受攻击的环境
cd setup
./setup.sh

# 运行 PoC
cd ../pocs
python3 preauth_user_backdoor.py      # 注入后门用户(预认证)
python3 preauth_user_rce.py           # 通过 COPY TO PROGRAM 实现 RCE(预认证)
python3 postauth_stor_backdoor.py     # 注入用户(认证后)
python3 postauth_stor_rce.py          # RCE(认证后)

# 清理
cd ../setup
./teardown.sh

📅 时间线

日期事件
2026-03-28向 ProFTPD 报告漏洞
2026-04-07验证并开发补丁
2026-04-24分配 CVE-2026-42167
2026-04-27发布补丁(提交 af90843baf7dcb8c6be1e5261be2d0b5b5850673)
2026-04-27发布 ProFTPD 1.3.9a

📚 参考

  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-42167
  • 技术博客: https://zeropath.com/blog/proftpd-cve-2026-42167-auth-bypass-privesc-rce
  • PoC 仓库: https://github.com/ZeroPathAI/proftpd-CVE-2026-42167-poc
  • 发布说明: http://www.proftpd.org/docs/RELEASE_NOTES-1.3.10rc1
  • 讨论: https://github.com/proftpd/proftpd/issues/2052

⚡ 最终建议

  1. 立即行动: 将 ProFTPD 升级到 1.3.9a 或更高版本
  2. 审计: 检查所有 ProFTPD 服务器上的 SQLLog 配置
  3. 权限: 确保数据库用户没有超级用户权限
  4. 监控: 为 SQL 注入尝试实施警报
  5. 补丁: 为所有依赖项保持定期补丁计划

最后更新: 2026 年 4 月 28 日
来源: ZeroPath Research、MITRE CVE、NVD

下载工具