| |
|
|
开发:
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.0.37反序列化漏洞审计 -> 正文阅读 |
|
|
[PHP知识库]yii2.0.37反序列化漏洞审计 |
源码地址https://github.com/yiisoft/yii2/releases/tag/2.0.37 一、审计工具phpstrom2020.1.3 二、审计步骤1.由于刚刚搭建完成,yii本身并没有可以利用来反序列化的Action,所以添加controllers/TestController.php,代码如下
2.根据师傅们爆出的漏洞入口点定位在:vendor/yiisoft/yii2/db/BatchQueryResult.php的reset方法内,当对象被销毁时,会调用reset()方法,当传入参数的值不为空的时候,会触发close()函数,但是调用的$this->close(),本类中并不存在此方法函数,由于参数在我们编写利用Action时是可控的,所以可以利用该处触发PHP魔术函数_call()进行利用。
3.接下来利用phpstrom全文查找利用到_call的地方,在/vendor/fzaninotto/faker/src/Faker/Generator.php处可以利用,跟进方法format(),当传入一个方法名,传入一个数组,会利用call_user_func_array(),熟悉PHP的小伙伴们都知道,这个函数非常危险,可以利用执行系统命令,各种函数命令等。
4.在返回call_user_func_array()函数中的第一个参数为getFormatter返回的值,跟进getFormatter()方法,它会判断formatters[$formatter]属性是否设置,然后返回该属性,说明该属性是可以让我们反序列化利用是控制的。
5.根据现在已有的条件寻找程序中能利用到的点,且要满足以下条件: 1.方法的参数必须是自己类中存在的。 2.方法需要具有命令执行的功能。 6.全文查找处2处合适的地方。 vendor/yiisoft/yii2/rest/CreateAction.php vendor/yiisoft/yii2/rest/IndexAction.php
7.至此POP链形成:
三、漏洞复现1.漏洞POC
2.访问payload:http://ip/index.php?r=test/test&data=TzoyMzoieWlpXGRiXEJhdGNoUXVlcnlSZXN1bHQiOjE6e3M6MzY6IgB5aWlcZGJcQmF0Y2hRdWVyeVJlc3VsdABfZGF0YVJlYWRlciI7TzoxNToiRmFrZXJcR2VuZXJhdG9yIjoxOntzOjEzOiIAKgBmb3JtYXR0ZXJzIjthOjE6e3M6NToiY2xvc2UiO2E6Mjp7aTowO086MjA6InlpaVxyZXN0XEluZGV4QWN0aW9uIjoyOntzOjExOiJjaGVja0FjY2VzcyI7czo2OiJzeXN0ZW0iO3M6MjoiaWQiO3M6Njoid2hvYW1pIjt9aToxO3M6MzoicnVuIjt9fX19
|
|
|
| PHP知识库 最新文章 |
| Laravel 下实现 Google 2fa 验证 |
| UUCTF WP |
| DASCTF10月 web |
| XAMPP任意命令执行提升权限漏洞(CVE-2020- |
| [GYCTF2020]Easyphp |
| iwebsec靶场 代码执行关卡通关笔记 |
| 多个线程同步执行,多个线程依次执行,多个 |
| php 没事记录下常用方法 (TP5.1) |
| php之jwt |
| 2021-09-18 |
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/6 13:38:47- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |