Yii2反序列化漏洞复现

yii反序列化漏洞复现及利用 yii反序列化漏洞 Yii框架 Yii 是一个适用于开发 Web2.0 应用程序的高性能PHP 框架。 Yii 是一个通用的 Web 编程框架,即可以用于开发各种用 PHP 构建的 Web 应用。 因为基于组件的框架结构和设计精巧的缓存支持,它特别适合开发大型应用, 如门户网站、社区、内容管理系统(CMS)、 电子商务项目和 RESTful Web 服务等。 Yii 当前有两个主要版本:1.1 和 2.0。 1.1 版是上代的老版本,现在处于维护状态。 2.0 版是一个完全重写的版本,采用了最新的技术和协议 阅读详情

Yii2反序列化漏洞复现

CVE-2020-15148

漏洞描述

Yii 是一个通用的 Web 编程框架,即可以用于开发各种用 PHP 构建的 Web 应用。 因为基于组件的框架结构和设计精巧的缓存支持,它特别适合开发大型应用, 如门户网站、社区、内容管理系统(CMS)、 电子商务项目和 RESTful Web 服务等。Yii2 2.0.38 以前的版本中存在反序列化漏洞,CVE编号是CVE-2020-15148

环境搭建

到github上下载yii2的2.0.37版本

打开 /config/web.php

image-20220711150722785

给17行的cookieValidationKey添加一个值,随便什么都行

image-20220711151429779

不添加就会这样

用 php yii serve --port=xxx 启动

image-20220711151913244

显示默认主页,环境搭建成功

image-20220711152341398

2.0.37版本漏洞复现

前置知识

在漏洞复现之前,补充一点yii2框架的前置知识点,yii2调用控制器和方法的格式是

http://url/index.php?r=[控制器]/[方法]

但是这是我们自己搭的环境,什么服务都没有,反序列化也就没有入口点,所以我们自己手动添加一个入口

在 /controllers 文件夹底下创建一个新的控制器,控制器里面写一个新的action方法,执行传入的aaa变量

注意命名空间

image-20220711180206759

然后在网址界面调用这个我们自定义控制器下面的自定义方法

这里的控制器和action方法命名有严格规范,图中可以明显看出来,不做过多解释

image-20220711180342882

上面我们只是测试了一下自定义控制器能不能正常工作,想要写一个自定义的反序列化入口,还是得这么写

<?php

namespace app\controllers;
use yii\web\Controller;

class HahaController extends Controller{
   
   
    public function actionXixi($aaa){
   
   
        // return phpinfo();
        return unserialize(base64_decode($aaa));
        
    }
}
反序列化链分析

2.0.38版本之前的漏洞是从**/vendor/yiisoft/yii2/db/BatchQueryResult.php里面的BatchQueryResult**类开始的

在开始分析链之前,先看看这些类属性,这些都是可控点,在后面的分析中需要保持敏感

image-20220711182610954

BatchQueryResult类的 __destruct() 是这条链的入口

image-20220711185524505

跟进**reset()**方法

image-20220711185851031

这里调用了 _dataReader的close()方法,这里跟进了close()之后也找不到可以利用的点,但是 _dataReader是BatchQueryResult类的属性,可控,所以我们可以想办法调用一下某个类的 __call() 方法

在框架里面全局搜索有 __call() 方法的类

image-20220711192250402

其中Generator.php里面的Generator就符合我们的要求,老规矩先看看属性部分

image-20220711222213912

Generator的 **__call()**方法

image-20220711192509477

这里的** m e t h o d ∗ ∗ 是 被 调 用 的 那 个 不 存 在 的 方 法 名 , 在 这 里 就 是 ∗ ∗ c l o s e ∗ ∗ , ∗ ∗ method**是被调用的那个不存在的方法名,在这里就是**close**,** method∗∗是被调用的那个不存在的方法名,在这里就是∗∗close∗∗,∗∗attributes**是后面的参数,这里就为空

继续跟进format()方法,这里call_user_func_array已经和目标很接近了

image-20220711222131895

format()方法的两个参数, f o r m a t t e r ∗ ∗ 就 是 上 一 层 的 ∗ ∗ formatter**就是上一层的** formatter∗∗就是上一层的∗∗method,即为close, a r g u m e n t s ∗ ∗ 也 变 成 了 空 数 组 , ∗ ∗ c a l l u s e r f u n c a r r a y ∗ ∗ 调 用 回 调 函 数 , 第 一 个 参 数 作 为 回 调 函 数 , 后 面 的 ∗ ∗ arguments**也变成了空数组,**call_user_func_array**调用回调函数,第一个参数作为回调函数,后面的** arguments∗∗也变成了空

yii2框架 反序列化漏洞复现 前言 跟着feng师傅再学习一下yii2的反序列化漏洞,提高代码审计能力 漏洞出现在yii2.0.38之前的版本中,在2.0.38进行了修复,CVE编号是CVE-2020-15148: Yii 2 (yiisoft/yii2) before version 2.0.38 is vulnerable to remote code execution if the application calls unserialize() on arbitrary user input. This is fixed in 阅读详情

相关推荐

Yii2 反序列化漏洞(CVE-2020-15148)复现

漏洞概述 Yii是一套基于组件、用于开发大型Web应用的高性能PHP框架。Yii2 2.0.38 之前的版本存在反序列化漏洞,程序在调用unserialize 时,攻击者可通过构造特定的恶意请求执行任意命令。 环境搭建 到github上下载yii2的2.0.37版本 https://github.com/yiisoft/yii2/releases/tag/2.0.37 然后修改/config/web.php文件17行cookieValidationKey,可以随便定义 ...

玄道的网安博客 1万+

CVE-2020-15148--Yii2 反序列化漏洞复现

简介: YiiFramework是一个基于组件、用于开发大型Web应用的高性能 PHP 框架。Yii提供了今日Web 2.0应用开发所需要的几乎一切功能。Yii是最有效率的PHP框架之一。 Yii2 2.0.38 之前的版本存在反序列化漏洞,程序在调用unserialize 时,攻击者可通过构造特定的恶意请求执行任意命令。 环境部署: 下载地址: https://github.com/yiisoft/yii2/releases/tag/2.0.37 下载这个yii..

Monica的博客 2018

CTFshow-Web入门:反序列化漏洞实战解析(Web265-Web270)

本文深入解析CTFshow-Web入门中的反序列化漏洞实战(Web265-Web270),涵盖PHP魔术方法、变量引用绕过、Yii框架漏洞利用及补丁绕过技巧。通过详细案例和防御方案,帮助读者掌握Web安全中的反序列化漏洞原理与实战应用,提升CTF竞赛和实际开发中的安全防护能力。

weixin_26965807的博客 323

Yii2反序列化漏洞的另类利用:从Cookie加密密钥泄露到RCE实战

本文深入解析Yii2框架反序列化漏洞,从Cookie加密密钥泄露到远程代码执行(RCE)的完整攻击链。通过详细的环境搭建、漏洞复现和POP链构造演示,揭示如何利用该漏洞实现RCE,并提供官方修复方案与临时防御措施,帮助开发者提升Yii2应用的安全性。

k0l1m2n3o的博客 737

CodeIgniter与Yii框架高危漏洞深度解析:从反序列化到任意文件读取实战

本文深度解析了CodeIgniter与Yii框架中的高危漏洞,包括反序列化和任意文件读取漏洞的实战利用。通过详细案例和技术细节,展示了攻击者如何利用这些漏洞获取敏感信息,并提供了有效的防御方案和实践建议,帮助开发者提升系统安全性。

fff88的博客 525

yii2.0.37反序列化漏洞审计

网上很多师傅都有审计yii2.0.37反序列化漏洞,自己也弄来学习学习

soufaker的安全屋 1145

YII框架CSRF_TOKEN反序列化漏洞分析与企业安全实践

CSRF(跨站请求伪造)是Web安全中的常见威胁,其防护机制通常依赖令牌验证。在PHP开发中,YII等主流框架通过生成加密的CSRF_TOKEN来防御此类攻击。然而,当令牌的生成与验证逻辑存在缺陷时,可能引发更深层的安全风险——反序列化漏洞。反序列化漏洞允许攻击者通过构造恶意数据触发特定代码执行链,常出现在处理用户可控的序列化数据场景中。本文以企业级终端安全产品为例,深入剖析YII框架CSRF_TOKEN机制因密钥管理不当与反序列化校验缺失,如何形成从令牌伪造到远程命令执行的完整利用链。通过结合PHP反序列

weixin_34279579的博客 449

STM32驱动电磁阀电路设计:从光耦选型到MOSFET驱动的实战解析

本文深入解析了STM32驱动24V电磁阀的完整电路设计,重点探讨了光耦选型与MOSFET驱动两大核心环节。针对电平转换与电气隔离需求,详细对比了EL357N与TLP2310等光耦在CTR、速度及耐压等关键参数上的差异与应用场景。同时,文章提供了MOSFET关键参数解读、驱动电路优化方案(如推挽驱动)以及完整的PCB布局、电源处理与调试避坑指南,旨在帮助工程师构建稳定可靠的工业控制电路。

weixin_29184371的博客 234

COLMAP生成MVSNet数据集

COLMAP生成MVSNet数据集

qq_43307074的博客 5638

OTN传送网实战指南:从光层到电层的完整架构解析(附配置示例)

本文深入解析OTN传送网从光层到电层的完整架构,涵盖关键组件、技术实现及配置示例。通过高速公路与光传送网的类比,详细介绍了光层超宽传输管道构建、电层业务调度核心引擎以及控制平面智能运维实战。附有典型组网方案与故障排查指南,助力网络工程师高效部署与维护OTN传送网。

tomato的博客 684

解锁机器人动态平衡算法:从原理到实践

机器人的动态平衡,是指机器人在运动过程中,面对各种复杂的动态变化和外界干扰,依然能够维持稳定状态,不发生倾倒或失去控制的能力。它就像是一位技艺精湛的舞者,在舞台上翩翩起舞时,无论做出多么复杂的动作,都能巧妙地调整身体姿态,始终保持平衡,展现出优美的舞姿。在实际应用中,机器人的动态平衡对于其稳定运行起着至关重要的作用。以双足机器人为例,当它行走在不平整的地面上时,地面的起伏会使机器人的重心不断发生变化。如果没有良好的动态平衡能力,机器人就很容易因为重心偏移而摔倒,无法完成行走任务。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 3838

这款值68亿的游戏,你不实战一下吗?安排!

本文介绍了如何使用Cocos开发传送带像素消除类游戏。游戏包含像素画、传送带、炮台等核心元素,需要先解析图片生成像素数据,再通过关卡编辑器设计关卡机制。炮台会在传送带上环绕运动,发射子弹消除匹配颜色的像素点。文章详细讲解了游戏对象实现方法,包括像素生成、传送带运动轨迹、炮台瞄准算法等,并展示了实战效果。完整源码已集成到亿元Cocos小游戏实战合集中,适合对像素消除游戏开发感兴趣的开发者参考。

lsw_Cs的博客 438

地球引擎初级教程:Python API 的安装和介绍

地球引擎的 Python API 提供了许多功能和工具,用于访问和处理地理空间数据。连接到地球引擎在编写地球引擎的 Python 脚本时,首先需要连接到地球引擎服务器。import ee # 初始化地球引擎 ee . Initialize()这将初始化地球引擎并建立与服务器的连接。加载和显示图像使用地球引擎的 Python API,您可以加载和显示卫星图像。import ee# 初始化地球引擎# 加载 Landsat 8 影像# 显示影像print('影像 URL:', url)

UePostscript的博客 1008

AgentScope实战训练营:从零搭建一个完整的A2A Agent应用

2024年4月,Google在Google Cloud Next大会上正式提出了A2A(Agent-to-Agent)协议,这是一个开放协议,旨在让不同的AI Agent之间能够像微服务一样相互发现、相互调用。通俗地讲:A2A协议就是AI Agent世界的HTTP协议——有了它,一个Agent可以把自己的能力以标准化的方式暴露出去,另一个Agent可以无缝地发现并调用它。本文将基于阿里巴巴开源的(Apache 2.0协议),手把手带你从零搭建一个完整的A2A Agent应用。

program哲学 567

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

上一篇: 软件漏洞分析入门(五)
下一篇: 内存马检测排查手段
[l_l]
博客等级 码龄7年 3181粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值