IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> yii2反序列化代码审计cve漏洞复现 -> 正文阅读

[PHP知识库]yii2反序列化代码审计cve漏洞复现

一环境

环境准备环境搭建
yii版本2.0.37和2.0.38
php版本 7.1
下载完打包,直接在
在这里插入图片描述
php yii serve
访问localhost:8080
在这里插入图片描述

二.分析漏洞

漏洞出发点
在\yii\vendor\yiisoft\yii2\db\BatchQueryResult.php文件中,
在这里插入图片描述
跟进reset
在这里插入图片描述
我们这里的_dataReader可控,然后$this->_dataREader->close(),触发__call方法(访问不存在的方法时触发)。

在\yii\vendor\fzaninotto\faker\src\Faker\Generator.php中找到一处
在这里插入图片描述
跟进format

我们可以控制第一个参数,为什么呢?
我们看一个demo

<?php
    class Test
    {
        function __call($function_name, $args)
        {
            echo "你所调用的函数:$function_name(参数:<br />";
            var_dump($args);
            echo ")不存在!";
        }
    }
    // 调用不存在的方法
    $p1=new Test();
    $p1->test(2,"test");

在这里插入图片描述
相当于close为第一个参数,但是第二个参数为空无法控制。

在这里插入图片描述
继续跟进getFormatter,此时的$formatter为close,但是第二个数组我们无法控制。

在这里插入图片描述可以看出最后返回 t h i s ? > f o r m a t t e r s [ this->formatters[ this?>formatters[formatter],相当于this->formatters[‘close’],我们是可以控制的,往上推,相当于

call_user_func_array($this->formatters['close'],不可控)

看一下这个函数的用处
在这里插入图片描述
这个函数的第一个参数可控,第二个参数为空
现在可以调用yii框架中的任何一个无参的方法。
如果无参方法中出现危险函数并且数据可控我们就可以实现rce。

找调用了call_user_func函数的无参方法。
构造正则

function \w+\(\) ?\n?\{(.*\n)+call_user_func

最后的链子

yii\db\BatchQueryResult::__destruct() -> Faker\Generator::__call() -> yii\rest\IndexAction::run()

不难,然后进行单步调试跟着链子走一遍就行。

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-19 11:49:47  更:2021-08-19 11:51:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/14 21:32:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码