thinkphp5.0.24反序列化漏洞分析

thinkphp5.0.24反序列化漏洞分析

文章目录

thinkphp5框架:

image-20220615000257518

thinkphp5的入口文件在publicindex.php,访问

http://192.168.64.105/thinkphp_5.0.24/public/index.php

image-20220615000539160

具体分析

反序列化起点

写一个反序列化入口点

image-20220615001131637

全局搜索__destruct()函数

image-20220615001115342

hinkphp_5.0.24 hinkphplibrary hinkprocesspipesWindows.php中的__destruct()函数,调用了removeFiles()

image-20220615001339350

跟进removeFiles(),第163行的file_exists可以触发__toString方法

image-20220615001418986

全局搜索__toString方法

thinkphplibrary hinkModel.php的第2265行,发现其调用了toJson方法

image-20220616230519422

跟进toJson,发现其调用了toArray()方法(在Model.php中)

image-20220616230630861

toArray

跟进toArray,发现其有三处可以调用__call方法(就是整一个可以控制的类对象,然后让其调用该类不存在的方法,然后触发__call魔术方法)

__call(),在对象中调用一个不可访问方法时调用。

image-20220616231036322

着重看第三处,也就是第912行,这个需要我们控制$value变量

这个 v a l u e 变量是根据 ‘ value变量是根据 ` value变量是根据value = t h i s − > g e t R e l a t i o n D a t a ( this->getRelationData( this>getRelationData(modelRelation);`而来的

getRelationData分析

跟进getRelationData方法,注意参数$modelRelation需要是Relation类型的,该方法也是thinkphplibrary hinkModel.php中定义的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ThinkPHP v5.0 RC4 主要更新: [底层架构] 增加Request类 并支持自动注入 统一Composer的自动加载机制 增加Response类的子类扩展 增加File类用于上传和文件操作 取消模式扩展 SAE支持降权 优化框架入口文件 改进异常机制 App类输入/输出调整 单元测试的完美支持 增加新的控制台指令 取消系统路径之外的大部分常量定义 类库映射文件由命令行动态生成 包含应用类库 [数据库] 增加分表规则方法 增加日期和时间表达式查询方法 增加分页查询方法 增加视图查询方法 默认保持数据表字段大小写 数据缓存自动更新机制 完善事务嵌套支持 改进存储过程数据读取 支持设置数据库查询数据集返回类型 [模型] 增加Merge扩展模型 模型支持动态查询 增加更多的类型自动转换支持 增加全局查询范围 toJson/toArray支持隐藏和增加属性输出 增加远程一对多关联 [其它] 日志存储结构调整 Trace调试功能从日志类独立并增强 原Input类功能并入Request类 类库映射文件采用命令行生成 包含应用类库 验证类的check方法data数据取消引用传参 路由增加MISS路由规则 路由增加路由别名功能 ThinkPHP软件介绍 ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,是为了敏捷WEB应用 开发和简化企业级应用开发而诞生的。拥有众多的优秀功能和特性,经历了三年多发展的同时,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和 改进,众多的典型案例确保可以稳定用于商业以及门户级的开发ThinkPHP借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,采用单一入口模式等,融合了Struts的 Action思想和JSP的TagLib(标签库)、RoR的ORM映射和ActiveRecord模式,封装了CURD和一些常用操作,在项目配置、类 库导入、模版引擎、查询语言、自动验证、视图模型、项目编译、缓存机制、SEO支持、分布式数据库、多数据库连接和切换、认证机制和扩展性方面均有独特的 表现。 使用ThinkPHP,你可以更方便和快捷的开发和部署应用。当然不仅仅是企业级应用,任何PHP应用开发都可以从ThinkPHP的简单 和快速的特性中受益。ThinkPHP本身具有很多的原创特性,并且倡导大道至简,开发由我的开发理念,用最少的代码完成更多的功能,宗旨就是让WEB应 用开发更简单、更快速。为此ThinkPHP会不断吸收和融入更好的技术以保证其新鲜和活力,提供WEB应用开发的最佳实践! ThinkPHP遵循Apache2开源许可协议发布,意味着你可以免费使用ThinkPHP,甚至允许把你基于ThinkPHP开发的应用开源或商业产 品发布/销售。 ThinkPHP页面展示 相关阅读 同类推荐:站长常用源码

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值