关于TP3.2.3的反序列化学习
今天第一次学习TP的反序列化,参考文章:ThinkPHP3.2.3反序列化链子分析
步骤和参考文章一样,这里增加一些自己的思考。
首先是建立反序列化子链的入口
这里通过base64传输并解码,然后进行反序列化,一般反序列化的调用是通过类销毁时调用的析构函数,所以全局搜索__destruct。
像这种虽然有可控参数 ,但是第一参数很少,第二没有什么实际的作用,所以应该找参数比较多的。
这种我们可以将类赋值给$this->img,并且调用对应类的destroy()方法 。因此需要
找到合适的destroy()方法,接下来就是寻找destroy.。
( 这里关于原文中参数可控不可控我并没有看太懂,以我的理解只能以为 $this->sessionName可控,sessID并不控,如果有大神可以帮忙解释一下。)然后Memcache中的$this->handle可控,所以接下来就寻找可以操作的delete方法。
这个方法,$option貌似不可控,但可以看到在下边的if判断中只判断其为空的情况,所以不传入值,也会进入if判断,而其中的$this->data,$this->pk都是可控的,所以还会调用delete本身。于是可以看下边的代码。
在519行,该方法调用了$this->db的delete方法,其中$this->db可控,之前的代码中只有507行的_parseOptions对option做了处理,但是也并没有很好的过滤,所以我们进入底层delete方法中实际执行的代码看一下是否存在过滤处理,并且如何执行sql的。
这里通过parseTable进行处理,但是没有过滤,所以可以使用。
总结:反序列化链子首先要明确我们要执行的操作,然后通过查找魔术方法,一步步查找合适的执行方法(最好可控变量比较多的),然后进行调用 。
关于TP3.2.3的反序列化学习相关推荐
- Tomcat-Session反序列化学习
Tomcat-Session反序列化学习 简介 CVE-2020-9484. 要求: tomcat必须启用session持久化功能FileStore tomcat/lib或者WEB-INF/lib目录 ...
- java object转map_Java反序列化学习之CommonsCollections1
更多全球网络安全资讯尽在邑安全 www.eansec.com 漏洞点 漏洞点存在于 commons-collections-3.1-src.jar!/org/apache/commons/collec ...
- C++ 序列化和反序列化学习
定义 程序员在编写应用程序的时候往往需要将程序的某些数据存储在内存中,然后将其写入某个文件或是将它传输到网络中的另一台计算机上以实现通讯.这些过程将会涉及到程序数据转化成能被存储并传输的格式,因此被称 ...
- C#序列化与反序列化学习
最近为了换一份新工作,准备了不少笔试题.从笔试当中自己发现了不少基础知识的盲点.很庆幸这样的机会,可以让自己对于基础知识的理解又上升一个台阶.此文介绍C#里面的序列化与反序列化的知识,如果你是大鸟,请 ...
- session.upload_progress反序列化学习
Session的配置选项和存储方式 在php.ini中存在四项配置项: session.save_path="" --设置session的存储路径 session.sa ...
- C#序列化、反序列化学习
概念: 序列化就是将对象转换为可保持或传输的过程,与序列化相反的过程就是反序列化. 作用: 通过序列化可以很轻松的存储和传输对象. 三种序列化技术: .NET提供了三种序列化技术,我只知道这三种技术. ...
- C# 中XML序列化与反序列化学习笔记
2019独角兽企业重金招聘Python工程师标准>>> static void Main(string[] args){List<Person> list = new L ...
- php反序列化之pop链构造
前言 随着对反序列化学习的不断深入,我们来学习一下pop链的构造.这个pop链对于我这种小白来说还是比较难理解的,再次写下这篇文章总结一下,加深自己对构造pop链的理解.同时也是提供想要入坑的小伙伴们 ...
- java安全(七) 反序列化3 CC利用链 TransformedMap版
给个关注?宝儿! 给个关注?宝儿! 给个关注?宝儿! 目录 图解 代码demo 涉及的接口与类: TransformedMap Transformer ConstantTransformer Invo ...
- 检查单 2014-06-20-01
2019独角兽企业重金招聘Python工程师标准>>> 上文: http://my.oschina.net/typhoon/blog/264162 下文: http://my.osc ...
最新文章
- 快速滚动_方老师教滚动快速作文
- TxQueryRunner-JDBC小工具
- VHDL程序基本构建
- 練習重繪TreeView控件
- 计算机控制系统的实时控制应用,计算机控制系统实时性的提高策略
- tbslog乱码转换_日文游戏乱码怎么办 乱码转换工具LocaleEmulator
- 发那科机器人编程软件fanuc roboguide授权补丁_工业机器人离线编程与应用:ROBOGUIDE V8.3版本的工程文件创建...
- Microsoft.SharePoint.dll分享
- 使用pyserial开发的一个串口调试工具
- 浏览器设置阻止第三方Cookie保护自己隐私
- FLASH寿命问题说明
- provisional headers are shown问题解决
- 【高通量测序】.dna文件批量读取CAG重复序列长度
- 康拓普:大屏、VR、网页…..数据可视化有哪些应用场景?
- 卖家中心html素材,天猫素材中心入口和使用方法
- 5.xss之旅—Level5
- 太强了,英伟达还有这一招...
- 不管怎样,苹果公司仍然是全球最有价值的公司
- 【移花接木】Maven项目结构调整解决方案
- git使用之fatal: Authentication failed for 【】异常