漏洞篇 - Java 反序列化之 CC4+CC2+CC5+CC7 链
CC4 链在 Commons Collections 版本为 3.2.1 的背景下,可以使用 TransformedMap 或者 LazyMap 来执行 transform 方法,但当 Commons Collections 的版本提升到 4.0 时...
CC4 链在 Commons Collections 版本为 3.2.1 的背景下,可以使用 TransformedMap 或者 LazyMap 来执行 transform 方法,但当 Commons Collections 的版本提升到 4.0 时...
CC3 链的核心在于利用 TemplatesImpl 加载恶意类时执行静态代码块。
网络隧道技术指的是利用一种网络协议来传输另一种网络协议,它主要利用网络隧道协议来实现这种功能。网络隧道技术涉及了三种网络协议,即网络隧道协议、隧道协议下面的承载协议和隧道协议所承载的被承载协议。
收集内网 IP ,进行端口扫描。
在进行渗透测试过程中会遇到内网中的其他机器是不允许外网机器访问的,因此需要通过端口转发(即隧道)或将得到的外网服务器设置为代理,使得攻击机可以直接访问并操作内网中的其他机器,这一过程就叫做内网转发。
前面在分析 CC1链 的 ysoserial 版时,我们知道 LazyMap 的 get 方法会调用成员属性 factory 的 transform 方法,而我们上一次是通过 AnnotationInvocationHandler 的 invoke 方法来调用这个 get 方法的。那么还有哪里能调用 LazyMap 的 get 方法呢?我们的 CC6 链给出了另一条路径:TiedMapEntry 类的 getValue 方法会调用成员属性的 get 方法。
在前面学习 CC1 链时,我们使用 TransformedMap 作为利用链,但其实除了 TransformedMap 之外,还有 DefaultedMap 和 LazyMap 也可以作为利用链,它们都在 org.apache.commons.collections.map 包下。这一节我们来分析 ysoserial 工具中利用的 CC1 链,它是将 LazyMap 作为利用链的。
前言:前面在分析初始版本 CC1 链的时候,查看 sun 包里的 AnnotationInvocationHandler 类的源码,发现变量名全都是 var 开头,非常不便于阅读,接下来将介绍如何使用 IDEA 查看带 sun 包的 JDK 源码,以及导入的依赖源码,这里的源码指的是 .java 文件。
在 Java 动态代理中,代理对象能够通过调用 invoke 方法来增强被代理对象的原始方法。
遇到 maven 无法自动导入的依赖怎么办,本文介绍了如何手动下载与导入 maven 依赖