设为首页收藏本站
红客联盟 首页 情报 查看内容

Pluck CMS 4.7.10远程代码执行漏洞分析

2019-10-11 21:45| 发布者: wjd| 查看: 2611| 评论: 0|原作者: 我怎么这么帅 |来自: 先知社区

摘要: 目前最新版本为4.7.10,但是这个问题在4.7.1版本时就存在了,虽然经过作者更新版本,文章编辑处参数过滤更加严格了,但是最终同样可以getshell,并且发现4.7.10版本经过多次更新,对关键参数处理仍遗留有相同问题。 ...

0x01漏洞描述

Pluck是用php编写的一款的小型CMS
影响版本:Pluck CMS Pluck CMS 4.7.10(更新于2019年8月)
官网地址:http://www.pluck-cms.org/?file=home

0x02漏洞分析

目前最新版本为4.7.10,但是这个问题在4.7.1版本时就存在了,虽然经过作者更新版本,文章编辑处参数过滤更加严格了,但是最终同样可以getshell,并且发现4.7.10版本经过多次更新,对关键参数处理仍遗留有相同问题。以下先介绍一下4.7.1版本的问题,便于后面对4.7.10版本快速理解。

v4.7.1分析

入口点在admin.php
admin.php:


editpage.php的35行可以看到此时对post传递的title和content等参数直接调用save_page函数,漏洞正存在于此,跟进save_page函数

functions.admin.php的588行,也就是位于save_page函数中,传入的title和content等可控参数直接传入与php代码进行了拼接,这里sanitize函数对单引号进行过滤,防止二次转义绕过,但是后面仍然可以bypass

functions.admin.php的612行,此时对title和content内容通过调用save_file函数进行直接写入,这里我们不用关心写入的文件名,因为写入以后将自动包含

functions.all.php的178行,此时若content不为数组则直接写到目标文件中

在前面的分析中我们可以看到title,content,hidden三个参数都写到了文件中,但是目前title和content都进行过滤了,但是hidden参数没有进行过滤,所以此时可以直接闭合$data变量拼接时的单引号,从而写入shell

此时将自动跳转到index.php加载我们写入的shell,结果如下

但是如果想通过title和content参数进行shell的写入也是可以的,只需要构造title或content为1\';phpinfo();/*即可

也可以进一步写入shell即可

v4.7.10分析

这个版本也是在文章编辑处出现了问题,在data\inc\functions.admin.php的539行处,将可控的POST参数与php代码进行拼接

此时单纯注入或注入反斜杠+单引号都将无法写入shell

但是正如最开始所说,这个最新的版本和4.7.1版本的关键参数hidden参数均未进行过滤,即同样通过hidden参数来写入shell文件

此时写入的文件如下所示,同样可以进一步进行rce,方法与v4.7.1方式相同

收藏 分享 邀请

相关分类

红盟社区--红客联盟 

Processed in 0.043308 second(s), 20 queries.

站点统计| 举报| Archiver| 手机版| 黑屋 |   

备案号:冀ICP备20006029号-1 Powered by HUC © 2001-2021 Comsenz Inc.

手机扫我进入移动触屏客户端

关注我们可获取更多热点资讯

Honor accompaniments. theme macfee

返回顶部