反序列化

研究某产品反序列化EXP时,搜集到的POC只有一段16进制字节序列难以利用,遂有下文对Java序列化和反序列化的学习。
对于这个漏洞的学习,有几个大体的思路,一是向大佬学习;二是找到可以利用的点,再不断构造合理的对象向这个点靠近;三是把几个子链分别构造好再连起来。
并非专业选手、本文如有出错的地方,还请师傅们帮忙斧正,也是记录一下在项目中遇到thinkphp windows 环境下 RCE的踩坑。
从2021年开始参加CTF比赛开始,就有几次遇到PHP原生类函数,自己也从来系统学习过这些类是如何使用的,但是该考点很常见,所以就来系统的学习一下。
RMI存在着三个主体,RMI Registry,RMI Client,RMI Server,而对于这三个主体其实都可以攻击,当然了需要根据jdk版本以及环境寻找对应的利用方式。
结构化XML数据映射为.NET对象,XmlSerializer 类的程序中通过单个API 调用来执行XML文档和对象之间的转换,转换后会在.NET类中元数据属性来表示,当Web程序,用户可控Type类的静态方法获取数据,并调用Deserialize反序列化xml数据就会触发反序列化漏洞攻击。
在学习java反序列化的过程中,Commons Collections几乎是反序列化学习中无法绕过的一关。也是各大ctf和awd的常见考点。
做 web 类题目的时候发现 ctfshow 平台中 web 入门题目中有关于PHP 框架漏洞的题目,尝试自己挖掘链子,进一步学习在框架类中反序列化的链子挖掘方式。
最近在恶补反序列化的知识点,mysql jdbc反序列化漏洞也是一个比较经典的漏洞。学习的过程中正好发现AntCTFxD^3CTF有道赛题把这个知识点出成了题目,为了了解该jdbc漏洞的利用场景,周末把环境和docker容器搭起来进行漏洞复现。
本次实验项目源码来源之前我写的Shiro-CTF的源码https://github.com/SummerSec/JavaLearnVulnerability/tree/master/shiro/shiro-ctf ,项目需要database文件上传到GitHub项目 learning-codeql上。