Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-48908-joomla-sp-page-builder-detection — 验证Joomla SP Page Builder中的CVE-2026-48908,通过未授权的图标上传导致PHP代码执行。包含auditd/PCAP证据、事件时间线和SOC检测建议,用于防御性研究。 | Kitploit
工具/GitHubGitHub/g0thamrabb1t/cve-2026-48908-joomla-sp-page-builder-detection
漏洞分析漏洞利用Web应用程序漏洞利用取证分析Web安全渗透测试论文与研究学习与教育事件响应

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
GitHubg0thamrabb1t/cve-2026-48908-joomla-sp-page-builder-detection

CVE-2026-48908-joomla-sp-page-builder-detection

验证Joomla SP Page Builder中的CVE-2026-48908,通过未授权的图标上传导致PHP代码执行。包含auditd/PCAP证据、事件时间线和SOC检测建议,用于防御性研究。

查看仓库
12个月前尚未审核
分享

CVE-2026-48908 — Joomla SP Page Builder 验证与检测

针对 Joomla SP Page Builder 组件中 CVE-2026-48908 的实验室验证,侧重于技术证据、事件重建和防御性检测机会。

本仓库记录了一次受控测试,其中 SP Page Builder 的 asset.uploadCustomIcon 端点接受了上传的图标压缩包,导致在 Joomla 媒体目录下写入了 PHP 构件。通过 HTTP 调用上传的 PHP 文件,以 Web 服务器进程用户的身份执行了命令。由此产生的 HTTP、文件、进程、认证和网络活动,通过 Apache 容器日志、Linux auditd、tcpdump、Docker 遥测、文件变更轮询以及 Windows 主机截图进行了捕获。

[!IMPORTANT] 本仓库仅包含报告和截图。攻击性漏洞利用代码、载荷源码、原始 PCAP 文件和原始主机证据包均有意不予收录。本材料旨在用于漏洞验证、SOC 工程、检测规则开发、事件响应准备和授权研究。

报告

  • 英文验证报告
  • 波兰语验证报告

两份报告均包含完整的测试方法论、证据摘录、事件时间线、文件变更证据、网络指标、缓解措施指南、审计建议和示例 SIEM 规则。

仓库结构

root@kitploit:~
.
├── README.md
├── SHA256SUMS.txt
├── reports/
│   ├── CVE-2026-48908_SP_Page_Builder_detection_EN.pdf
│   └── CVE-2026-48908_SP_Page_Builder_detection_PL.pdf
└── screenshots/
    ├── 01_poc_upload_and_code_execution.png
    ├── 02_http_whoami_www_data.png
    ├── 03_tcp_callback_ncat.png
    ├── 04_reverse_shell_session.png
    └── 05_root_access_and_su_failure_redacted.png

本仓库不包含漏洞利用源码、载荷源码、原始 PCAP、原始 Docker 证据包或 DOCX 源文件。

测试环境

角色系统
受害主机Ubuntu 24.04.4 LTS,内核 6.17.0-35-generic,Docker Engine 29.5.3
目标应用Joomla 5.4.7、PHP 8.3.32、Apache HTTP Server,镜像 joomla:5-php8.3-apache
组件JoomShaper SP Page Builder
容器joomla5-builders
攻击者工作站Microsoft Windows 11 Home 10.0.26200
Joomla 服务http://172.20.10.3:8080
Windows 测试地址172.20.10.2
容器地址172.21.0.3
测试日期2026 年 7 月 9 日

Joomla Web 根目录 /var/www/html 由 Docker 卷 joomla5-builders_joomla_data 提供支撑。这对检测很重要:docker diff 无法提供卷内文件变更的详细可见性,因此文件监控必须依赖卷感知的文件列表和主机端监控指导。

验证内容

测试在隔离且经授权的实验环境中进行。验证覆盖以下流程:

  1. 在 Docker 中部署了安装有 SP Page Builder 的 Joomla 5。
  2. 使用参考文献中列出的一个公开项目作为初始验证参考。
  3. 在实验环境中,SP Page Builder 的 asset.uploadCustomIcon 端点接受了上传的图标压缩包。
  4. 在 /media/com_sppagebuilder/assets/iconfont/ 下创建了新的目录和文件。
  5. 上传内容包含混合大小写的 PHP 扩展名,以及一个更改了 .PHP 扩展名 PHP 处理方式的 .htaccess 文件。
  6. 通过 HTTP 调用上传的 PHP 构件并执行了受控命令。
  7. 向 Windows 主机发起的一次性 TCP 回调确认了出站连接。
  8. 一次受控的反向 Shell 测试确认了以 Web 服务器用户身份进行的交互式命令执行。
  9. 访问 /root 以及使用 su - 切换用户的尝试均失败。
  10. 来自受害端遥测和 Windows 截图的证据被关联到同一条 UTC 时间线中。

报告有意记录证据和检测逻辑,但不分发可复用的漏洞利用或载荷实现。

确认结果

实验室测试确认了:

  • 通过 SP Page Builder 的 asset.uploadCustomIcon 端点进行未授权上传;
  • 在 Joomla 媒体目录下创建 PHP 和 .htaccess 构件;
  • HTTP 请求后在服务端执行上传的 PHP 构件;
  • 以 Apache/PHP 进程用户上下文执行;
  • 从 Joomla 容器到 Windows 主机的出站 TCP 连接;
  • 以 www-data 身份建立的交互式反向 Shell 会话;
  • 未确认可提权至 root。

容器内的有效身份为:

root@kitploit:~
uid=33(www-data) gid=33(www-data) groups=33(www-data)

失败的提权尝试可见于:

root@kitploit:~
cd root
bash: cd: root: Permission denied
su -
Password:
su: Authentication failure

关键证据

公开 PoC 验证与上传行为

公开 PoC 测试了多种扩展名变体,并确认在实验室环境中,混合大小写 PHP 扩展名与 .htaccess 的组合可能导致代码执行。

PoC 上传与代码执行

以 Web 服务器用户身份执行代码

一次受控的 HTTP 请求执行了 whoami,浏览器显示了有效的进程用户。

HTTP whoami 结果

一次性 TCP 回调

在交互式测试之前,使用了一种更安全的单消息回调,以确认从目标环境到 Windows 主机 TCP 端口 4444 的出站连接。

一次性 TCP 回调

反向 Shell 会话

交互式会话确认执行身份为 www-data,操作系统为 Linux,工作目录位于 Joomla SP Page Builder 媒体路径下。

反向 Shell 会话

失败的 root 访问尝试

访问 /root 和使用 su - 认证的尝试均失败。截图经过脱敏处理,以避免公开测试密码。

失败的 root 访问与 su 尝试

重建时间线

完整时间线见两份 PDF 报告。最重要的事件如下:

UTC事件
19:33:56Linux audit、tcpdump、Docker 事件和文件变更轮询启动
19:34:23连续 POST 请求发送至 /index.php?option=com_sppagebuilder&task=asset.uploadCustomIcon
19:34:23.291携带受控算术命令的 GET 请求访问上传的 .PHP 文件
19:34:23.329携带受控算术命令的 GET 请求访问上传的 .pHp 文件
19:34:23.361携带受控算术命令的 GET 请求访问上传的 .Php 文件
19:34:23.398携带受控算术命令的 GET 请求访问最终的 .PHP 构件
19:34:23.411公开 PoC 通过上传的 PHP 构件执行 id 并收到 HTTP 200
19:35:05手动 whoami 请求返回 www-data
19:35:27到 172.20.10.2:4444 的一次性 TCP 回调成功
19:35:59HTTP 请求发起到 172.20.10.2:4444 的反向 TCP 连接
19:36:22-19:36:31whoami、uname、id 和 pwd 确认了执行上下文
19:37:13cd root 返回 Permission denied
19:37:21-19:37:28su - 尝试失败,提示 Authentication failure
19:39:25停止审计收集并打包构件

证据收集方法

Linux 和 Docker

受害主机收集了:

  • auditd 记录的 execve 事件;
  • 使用 tcpdump 进行的数据包捕获;
  • Docker 容器元数据、日志、事件、进程列表和文件系统差异;
  • 从容器内部进行的周期性文件变更轮询;
  • Joomla Web 根目录、临时目录和相关媒体路径的文件列表;
  • 测试前后选定的容器状态。

测试还发现了一个监控局限性:由于 /var/www/html 由 Docker 卷支撑,docker diff 无法显示 /var/www/html/media/com_sppagebuilder/assets/iconfont/ 下的详细文件创建情况。因此,文件完整性监控应覆盖支撑该卷的真实主机路径。

Windows

Windows 主机证据有意仅限于与报告相关的截图:

  • 公开 PoC 输出;
  • whoami 的浏览器输出;
  • 一次性回调的 Ncat 输出;
  • 反向 Shell 会话的 Ncat 输出;
  • 失败的 /root 和 su - 尝试(密码已脱敏)。

最重要的检测机会

1. 通过 SP Page Builder 上传

监控 HTTP、反向代理、WAF 或网络遥测中的以下组合:

root@kitploit:~
POST /index.php?option=com_sppagebuilder&task=asset.uploadCustomIcon
User-Agent contains: sppb-rce-poc
Status: 200, 201, or 204

在生产环境中,不要仅依赖公开 PoC 的 User-Agent。端点和异常上传模式是比 User-Agent 值更稳定的指标。

2. SP Page Builder 图标路径下出现可执行文件或 .htaccess

监控匹配以下条件的新增或修改文件遥测:

root@kitploit:~
/media/com_sppagebuilder/assets/iconfont/*/fonts/*.php
/media/com_sppagebuilder/assets/iconfont/*/fonts/*.PHP
/media/com_sppagebuilder/assets/iconfont/*/fonts/*.pHp
/media/com_sppagebuilder/assets/iconfont/*/fonts/*.Php
/media/com_sppagebuilder/assets/iconfont/*/fonts/.htaccess

在媒体上传目录中出现包含 AddType application/x-httpd-php .PHP 的 .htaccess 是高价值指标。

3. 携带命令参数的 GET 请求访问上传的 PHP 文件

将上传活动与随后对类似路径的 HTTP 请求进行关联:

root@kitploit:~
/media/com_sppagebuilder/assets/iconfont/*/fonts/*

当请求针对类 PHP 扩展名且包含 t= 和 c= 等参数时,置信度更高。

4. Web 服务账户产生的 Shell 或解释器活动

高价值进程指标包括:

root@kitploit:~
user: www-data, apache, or nginx
process: bash, sh, dash, or php
command line contains: /dev/tcp, bash -i, redirection operators, or unusual interpreter execution

5. 来自 Web 容器的出站连接

当 Web 服务器进程启动的 Shell 或解释器向工作站或异常目标端口发起出站连接时发出告警。实验室事件使用 TCP 端口 4444,但生产环境的检测不应依赖单一端口。

6. Web 执行后的失败提权尝试

测试产生了失败的 su - 尝试。监控 unix_chkpwd 等认证辅助程序、对 /var/log/btmp 的写入,以及 Web 服务账户被入侵后的交互式命令。

SOC 分流指南

当检测到 HTTP 上传指标时,SOC 应立即将其与以下信息关联:

  • 源 IP、用户代理和 HTTP 状态;
  • 目标 Joomla 实例是否安装了 SP Page Builder,以及版本是否存在漏洞;
  • /media/com_sppagebuilder/assets/iconfont/ 下的新目录;
  • Joomla 媒体目录下的新 PHP 类文件或 .htaccess 文件;
  • 上传后不久对新建文件的 HTTP GET 请求;
  • t= 和 c= 等命令类查询参数;
  • Web 服务器用户创建的进程,尤其是 Shell 或解释器进程;
  • 来自 Web 容器或 Web 服务账户的出站连接;
  • whoami、id、uname、hostname、pwd、ip、ifconfig、netstat 或 ss 等信息收集命令;
  • 初始执行后的认证失败、凭据访问尝试、持久化或横向移动。

单个上传事件本身并不总是充分条件。最强的告警是在同一短时间窗口内组合了上传、文件创建、文件访问、进程执行和出站网络遥测。

建议的缓解措施

  1. 将 SP Page Builder 更新至 6.6.2 或更高版本。
  2. 检查 /media/com_sppagebuilder/assets/iconfont/ 以及更广泛的 Joomla 媒体目录中是否存在 PHP 类文件和 .htaccess 构件。
  3. 从上传目录中移除任何意外的 PHP、.htaccess、.phtml、.phar、压缩包或可执行构件。
  4. 在 Apache、Nginx 和 PHP-FPM 层面禁用上传和媒体目录中的 PHP 执行。
  5. 限制或告警来自不受信任网络对 asset.uploadCustomIcon 端点的访问。
  6. 监控 Web 服务子进程和来自 Web 容器的出站连接。
  7. 为包含应用 Web 根目录的 Docker 卷部署 FIM、eBPF、auditd 或 EDR 覆盖。
  8. 当应用数据存储在 Docker 卷或绑定挂载中时,不要仅依赖 docker diff 进行 Web 根目录监控。

范围与局限性

  • 验证仅针对一台安装了 SP Page Builder 的 Joomla 5 Docker 实例进行。
  • 观察到的影响是以 Web 服务器进程用户 www-data 身份执行代码;未确认可提权至 root。
  • 该结果确认了所测试路径和配置的有效性。它不能证明每个部署、反向代理、Web 服务器、PHP 处理器或操作系统都有相同表现。
  • 本仓库不分发攻击性漏洞利用代码、载荷源码、原始 PCAP 文件、原始 Docker 证据包和 DOCX 源文件。
  • 报告包含的是选定的证据摘录而非完整原始日志,以保持材料可读性并聚焦于检测。

参考

  • NVD - CVE-2026-48908
  • CVE.org - CVE-2026-48908
  • CISA 已知被利用漏洞目录
  • 用作初始验证参考的公开项目
  • JoomShaper SP Page Builder

负责任使用声明

本材料仅供防御性安全研究、漏洞管理、检测工程、事件响应准备和授权测试使用。未经明确许可,请勿将其用于任何系统。

下载工具