Java反序列化链调试—初探(URLDNS、CC):四
前景提要: https://lrui1.top/posts/f50fa0/ CC5CC1的触发逻辑是 AnnotationInvocationHandler -> LazyMap.get() -> InvokeTransformer,而CC5则是找到了另外一种方式来触发LazyMap.get() 攻击链构造对LazyMap.get()进行Find Usage,在common-collection 3.2.1下有一个类的toString()方法存在间接调用get 当然不止toString(),还有hashCode,equals,CC5是从toString()构造的,我们先分析toString() TiedMapEntry从上方的Find Usage,我们可以得出一个结论:TiedMapEntry的toString()、hashCode()、equals()方法都可以触发我们之前构造的攻击链——LazyMap.get() 测试代码如下 12345678910111213141516171819@Test public void testTiedMapEntry()...
Java反序列化链调试—初探(URLDNS、CC):三
前景提要 https://lrui1.top/posts/42a999ad/ CC2触发类是TemplatesImpl,自底向上分析一下 攻击链构造TemplatesImplTemplatesImpl.getTransletInstance()方法,将自身属性_class[_transletIndex]的值进行实例化,而且前面有对_class作判空处理,为空则调用defineTransletClasses方法 12345678910111213141516171819202122232425262728293031323334/** * This method generates an instance of the translet class that is * wrapped inside this Template. The translet instance will later * be wrapped inside a Transformer object. */private Translet getTransletInstance() throws...
Java反序列化链调试—初探(URLDNS、CC):二
前景提要 https://lrui1.top/posts/7929b704/ CC1上文调试了CC1关于TransformedMap.checkSetValue()触发ChainedTransformer.transform()的攻击链,但是之前对Transformer.transform()Find Usage时,还有两个Map:DefaultedMap、LazyMap 其中LazyMap就是CC1的另外一种形式,接下来我们分析下LazyMap 攻击链构造ChainedTransformer参考直接的构造 https://lrui1.top/posts/7929b704/#ChainedTransformer-1 测试代码如下 123456789101112131415@Test public void testTransform() throws Exception { ChainedTransformer chainedTransformer = new ChainedTransformer(new Transformer[]{ ...
Java反序列化链调试—初探(URLDNS、CC):一
目前而言,想拿权限,大部分都依赖命令注入或者反序列化漏洞的利用,下文是作者调试Java反序列化常见利用链的随手记录,个人理解调试Java反序列化链可以自上而下的理解漏洞的利用过程。 环境清单 JDK 1.8.0_65 Apache commons collections 3.2.1 IDEA 2025.2.3 序列化&反序列化定义一个User实体 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970package top.lrui1.pojo; import java.io.Serializable; public class User implements Serializable { private static final long serialVersionUID = 1L; private Long...
Jazzer入门手册
Jazzer简介Github: https://github.com/CodeIntelligenceTesting/jazzer Jazzer 是由Code Intelligence开发的面向 JVM 平台的覆盖率引导式进程内模糊测试工具。它基于libFuzzer,并将 libFuzzer 的许多基于插桩的变异功能引入了 JVM。 Jazzer 与 JUnit(5.9.0 或更高版本)无缝集成,允许您在编写常规单元测试的同时编写模糊测试。推荐的入门方法是将此jazzer-junit依赖项添加到您的项目中。此软件包可在Maven Central上找到,并使用此密钥签名。 您可以将 Jazzer 与常用的构建工具一起使用 Jazzer有两种运行方式:Junit集成、独立运行(jar或二进制) 下文基于Log4j2 Shell(CVE-2021-44228)简单介绍Maven构建工具下,关于Jazzer的使用,包含自定义词典 前置知识什么是插桩(Gemini)1、通俗比喻:走迷宫想象你在探索一个漆黑的巨大迷宫(目标程序): 没有插桩 (黑盒测试/Blind...
MongoDB入门手册
环境搭建参考链接 https://www.cnblogs.com/sowler/p/17513973.html https://www.mongodb.com/zh-cn/docs/manual/tutorial/getting-started/?msockid=1d1e415e713463862dba5762701d623f 1mkdir -p /data/mongo/{conf,data} 123456789docker run -d --name mongodb \ -p 27017:27017 \ -v /data/mongo/data:/data/db \ -v /data/mongo/conf:/data/configdb \ -e MONGO_INITDB_ROOT_USERNAME=root \ -e MONGO_INITDB_ROOT_PASSWORD=root \ mongo:8.2.2 \ --bind_ip 0.0.0.0 \ ...
以RuoYi-Cloud入手SpringCloud了解请求流转过程
最近做代码审计,遇到一个SpringCloud系统存在漏洞,找到了Controller,但是不会发请求包,于是通过RuoYi-Cloud来学一下怎么构造请求路径 环境搭建参考链接 https://doc.ruoyi.vip/ruoyi-cloud/document/hjbs.html 搭建环境 RuoYi-Cloud v3.6.6,自行克隆代码checkout JDK 17.0.16 Windows x64 Kali 拉取必要镜像 123docker pull mysql:5.7docker pull redis:8docker pull nacos/nacos-server:v3.1.0 MySQL1234567891011121314151617rm -rf /data/mysql/{data,conf,logs}mkdir -p /data/mysql/{data,conf,logs}mkdir -p /data/mysql/init# init目录下放初始化SQLdocker run -d \ --name mysql57...
JQF入门手册
JQF简介JQF 是一个面向 Java 的反馈驱动模糊测试平台(类似于 AFL/LibFuzzer,但针对 JVM 字节码)。JQF采用属性测试的抽象机制,便于将模糊驱动程序编写为参数化JUnit测试方法。该平台基于junit-quickcheck构建,支持运行junit-quickcheck风格的参数化单元测试,同时融合Zest等覆盖率引导模糊算法的强大功能。 Zest 是一种将覆盖率引导模糊测试偏向生成语义有效输入的算法,即在满足结构与语义属性的同时最大化代码覆盖率。其目标是发现传统模糊工具无法检测的深层语义缺陷——后者主要仅关注错误处理逻辑。默认情况下,JQF 通过简单命令运行 Zest:mvn jqf:fuzz 上述介绍中的mvn jqf:fuzz,前提是你的Maven工程引入对应的Maven插件,由于jqf有很多小优化,这边建议直接使用当前最新版jqf-2.0(截止2025-11-13),本文由于漏洞复现需要,选择jqf-1.7(最后一个兼容JDK8的版本)来测试,下面以jqf自定义seed模糊测试扫描Log4j2...
Jarbas靶机笔记
地址:https://www.vulnhub.com/entry/jarbas-1,232/ 信息收集1nmap -T4 -Pn -A 192.168.19.0-255 总结:目标机常用端口开放了22、80、3306、8080,我认为渗透优先级3306>8080>80>22 3306端口根据nmap扫描结果,试一下弱口令能否连接,不行,下一个端口吧 8080端口根据nmap扫描结果,是一个jetty服务器,打开后发现是jenkins中间件,查看右下角,版本号为Jenkins ver. 2.113 vulhub搜索该漏洞nday,发现CVE-2018-1000861,目标版本2.113在影响范围内 https://github.com/vulhub/vulhub/blob/master/jenkins/CVE-2018-1000861/README.zh-cn.md Jenkins旧版本更新日志 https://www.jenkins.io/changelog-old/ 使用...
w1r3s-101,220靶机笔记
靶机地址 https://www.vulnhub.com/entry/w1r3s-101,220/ 信息收集主机发现当前内网环境为192.168.19.0/24,使用fscan进行扫描 1fscan.exe -h 192.168.19.0/24 -nobr -nopoc 目标IP:192.168.19.130,开放了21、22、80、3306这3个端口 端口扫描 感觉nmap比较好用,以后直接用nmap了 21 端口FTP服务的默认端口号是21,匿名登录成功后,下载文件,发现 12345678The W1R3S.inc employee listNaomi.W - ManagerHector.A - IT DeptJoseph.G - Web DesignAlbert.O - Web DesignGina.L - InventoryRico.D - Human Resources 一段base64编码 12SXQgaXMgZWFzeSwgYnV0IG5vdCB0aGF0IGVhc3kuLg==It is easy, but not that...

