
代码审计 | CC2 链 —— _tfactory 赋值问题 PriorityQueue 新入口
代码审计 | CC2 链 —— _tfactory 赋值问题 PriorityQueue 新入口目录 前言 环境 链路分析 Sink:TemplatesImpl 与 _tfactory 赋值问题 InvokerTransformer TransformingComparator(关键节点) PriorityQueue:入口点 EXP 编写 完整调用链追踪 为什么必须用 CC 4.0 小结...

代码审计 | CC2 链 —— _tfactory 赋值问题 PriorityQueue 新入口目录 前言 环境 链路分析 Sink:TemplatesImpl 与 _tfactory 赋值问题 InvokerTransformer TransformingComparator(关键节点) PriorityQueue:入口点 EXP 编写 完整调用链追踪 为什么必须用 CC 4.0 小结...

代码审计 | CC3链 —— 实例化 vs 反序列化 InvokerTransformer vs InstantiateTransformer目录 环境说明 CC3的设计思路 前置知识:实例化触发 vs 反序列化触发 readObject 触发实验 newInstance 触发实验 反射补充:clazz.newInstance() 的限制 构造恶意 Class:EvilClass ...

代码审计 | CC6 链 —— 反向构造 payload 与 ysoserial 为什么需要 CC6?CC1 的限制 CC6 存在的意义 调用链全貌 一步步构造 CC6 第一步:用 ChainedTransformer 串联恶意链 第二步:LazyMap.get() 触发 transform 第三步:谁调用 get()?——TiedMapEntry.getValue() 第四步:谁调用 ge...

代码审计 | CC1 LazyMap 链 —— 动态代理 学习笔记,记录自己学 CC1 LazyMap 版的思路历程 前置:已经看完 TransformedMap 版,Transformer 链那部分这里就不重复了,直接从”触发点不同”讲起。 目录 和 TransformedMap 版有什么区别 第一步:LazyMap 的触发机制 第二步:谁来调用 LazyMap.get() Annot...

工具魔改 | Cobalt Strike 4.7 特征修改与流量混淆 本文记录了对 Cobalt Strike 4.7 的一些特征修改过程,包括证书替换、Malleable C2 Profile 流量伪装、Beacon 内存特征处理、异或密钥修改等。不是什么教程,就是自己折腾的过程记录。 目录 证书替换 Malleable C2 Profile 流量混淆 修改服务端端口 CS 源码编译与...

学习笔记,记录自己学 CC1 链的思路历程,不是教程,有啥问题欢迎交流。 目录 最终目标是什么 通过反射调用函数 但实际场景中没地方写代码怎么办 方式 A:直接传输 Payload(CC 链) 方式 B:远程类加载 Gadget Chain 的由来 CC1 链构造过程 环境准备 第一步:找到能执行命令的点 —— InvokerTransformer 第二步:Runtime 不能序列...

环境:FastJSON 1.2.47 / JDK 8u65 / Tomcat 9.0.20 / IDEA 调试 目录 前言 和 TemplatesImpl 链的区别 补充:FastJSON 的 getter/setter 扫描机制 环境准备 恶意类编写 字节码转换脚本 Payload 结构 调试跟踪 完整调用链总结 前言上一篇 Templat...

目录 前言 两条链的区别 TemplatesImpl 链概览 利用前提 利用步骤 Payload 构造 调试跟链 完整调用链总结 局限性 前言上一篇分析了 FastJSON 1.2.24 的 JdbcRowSetImpl 出网 RCE 链,以及 1.2.25 ~ 1.2.43 的 autoType 绕过演进。这篇来看 1.2.47 的不出网利用方式——TemplatesImpl 链。 关...

1.2.47 的缓存绕过不需要开任何开关,默认配置就能打,危害最大。 目录 环境准备 漏洞概述 Payload 结构解析 源码跟踪:一步步看绕过过程 第一阶段:处理字段 a,预热缓存 第二阶段:处理字段 b,命中缓存绕过检测 总结 环境准备版本:1.2.47 使用 Maven 管理依赖,在 pom.xml 里改一下版本号就行。 漏洞概述先看一下 Payload 的样子: 1...