再谈Java反序列化:ysoserial补全计划(三)

参考文章:
https://su18.org/

C3P0 HttpBase

C3P0 的基础知识(基础使用和关键类解析)学习学习:
https://www.cnblogs.com/ZhangZiSheng001/p/12080533.html

c3p0是用于创建和管理连接,利用“池”的方式复用连接减少资源开销,和其他数据源一样,也具有连接数控制、连接可靠性测试、连接泄露控制、缓存语句等功能。目前,hibernate自带的连接池就是c3p0hibernate 是上一篇文章提到的 orm 框架)

阅读更多

再谈Java反序列化:ysoserial补全计划(二)

Commons BeanUtils1

commons-beanutils : 1.9.2

commons-beanutils 是 Apache 提供的一个用于操作 JAVA bean 的工具包。里面提供了各种各样的工具类,让我们可以很方便的对 bean 对象的属性进行各种操作。

之前有条这样的链子:PriorityQueue -> TransformingComparator -> ChainedTransformer -> InstantiateTransformer -> TemplatesImpl,中间步骤太多,于是有了这条直接从 Comparator 到 TemplatesImpl 的 getoutputProperties 方法的 CB 链。

阅读更多

再谈Java反序列化:ysoserial补全计划(一)

前言

整体跟着 su18 师傅的博客进行学习,写的真的很详细:

Java 反序列化取经路 | 素十八 (su18.org)

以 ysoserial 的众多链子为抓手,再谈 java 反序列化,也许可以注意到之前没有注意过的问题,也可以提高代码审计的水平。

URLDNS

最简单且有用的链子,不依赖任何依赖和 jdk 版本,仅使用 hashmap 和 url 这两个 jdk 自带的类。

通常用来检测是否存在反序列化漏洞。

阅读更多

Struts2全系漏洞分析(二)

参考链接:

https://blog.csdn.net/Fly_hps/article/details/85001659

https://su18.org/post/struts2-1/#s2-009

前言

在继续Struts2全系漏洞的分析之前,我犹豫了一会,究竟是要继续分析Struts2剩下的其他漏洞,还是好好分析一下ysoserial的反序列化链呢,本着尽量旧坑未填不开新坑的原则,我还是继续来调试代码,分析Struts2的历史漏洞吧。

另外,在网上寻找怎么搭建S2-007漏洞时,发现了一个惊人的漏洞源码库,只需要将对应的文件夹用 idea 打开配置自己的 tomcat 即可运行,终于不用艰难地搭环境了,好耶!

仓库在这里:https://github.com/xhycccc/Struts2-Vuln-Demo

前一篇文章由于是第一次分析Struts2的漏洞,故分析的比较详细,这一篇就会简略一点,主要理解漏洞链以及漏洞触发的流程。

阅读更多