SkillAgentSearch skills...

MyJavaSecStudy

在Java安全学习过程中的笔记和代码

Install / Use

/learn @1diot9/MyJavaSecStudy
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

MyJavaSecStudy

记录一下我的Java安全学习历程。会不定时更新索引和代码仓库。

分割线表示至少要学完上面部分才能入门。

<br> <br>

Java基础<a id="Java基础"></a>

主要目标是学会Java基础语法就行,不用一下子学太深,之后遇到不会的再回来查就行

柏码知识库 | JavaSE 笔记(一)走进Java语言 这个比较推荐,看章节目录的(一)~(六)就行,后面SpringMVC,SpringBoot也可以看这个网站

简介 - Java教程 - 廖雪峰的官方网站

JavaGuide(Java学习&面试指南) | JavaGuide

【狂神说Java】Java零基础学习视频通俗易懂_哔哩哔哩_bilibili b站看其他的也行,比如黑马,找自己适合的就行

<br>

Java安全基础 <a id="Java安全基础"></a>

主要是学习反射,类加载,动态代理,各种命令执行方式等概念,为后面的学习打下基础。

一开始看不懂很正常,能有个印象就行,后面在具体问题中发现自己不会时再回来看;多问AI

<br>

基础内容

想快一点的话,可以只看这部分文章。选取了两位师傅的文章,可以相互补充。

2. 读文件 看里面的IO操作,反射,代理模式(可以先略看),命令执行方式,Unsafe,类加载器和序列化与反序列化就行

Java反序列化基础篇-02-Java反射与URLDNS链分析 | Drunkbaby's Blog 先看里面反射的部分就行

Java反序列化基础篇-03-Java反射进阶 | Drunkbaby's Blog

Java反序列化基础篇-05-类的动态加载 | Drunkbaby's Blog 类加载学完要知道,类加载时,会触发哪些部分的代码

Java反序列化基础篇-01-反序列化概念与利用 | Drunkbaby's Blog 看完这个可以把上面那个URLDNS链看一下

<br>

补充内容

Java反序列化漏洞专题-基础篇(21/09/05更新类加载部分)_哔哩哔哩_bilibili 视频教程,内容和上面差不多

ClassLoader · 攻击Java Web应用-Java Web安全 也是上面的内容,可以看看有什么不一样

JavaSec/1.基础知识/ClassLoader(类加载机制)/ClassLoader(类加载机制).md at main · Y4tacker/JavaSec

MyJavaSecStudy/docs/Java安全漫谈.pdf at main · 1diot9/MyJavaSecStudy phith0n师傅的Java安全漫谈,也很不错,其中07.反序列化篇(1)中讲了php,python和java反序列化的异同,可以看看

phith0n/JavaThings: Share Things Related to Java - Java安全漫谈笔记相关内容 Java安全漫谈的配套代码

Java 反序列化漏洞(一) - 前置知识 & URLDNS | 素十八 涉及到了反序列化具体原理,比较深入

<br>

JavaWeb基础<a id="JavaWeb基础"></a>

JavaWeb常见漏洞

XXE

XXE整理 | 1diot9's Blog 参考的文章记得看

一篇文章带你深入理解漏洞之 XXE 漏洞-先知社区 虽然不针对Java,但是写的很完整

<br>

代码 / jar包调试<a id="代码和jar包调试"></a>

一开始做ctf题的时候,遇到过很尴尬的情况,拿到jar包,不知道要怎么在本地调试。后面才学习到了反编译,远程调试等内容。

奇安信攻防社区-java审计调试方式 基本涉及了所有情况

skylot/jadx: Dex to Java decompiler 反编译工具

<br>

反序列化 <a id="反序列化"></a>

初学可以只看CC链

CC链

CC链是Java反序列化的开始。

Java反序列化Commons-Collections篇01-CC1链 | Drunkbaby's Blog 小叮师傅的博客讲了所有的CC链,同时也有环境搭建的示例(一定跟着配一下8u65的源码,后面查找用法的时候才能搜索到),而且还有一张全CC链的流程图JavaSecurityLearning/链子流程图 at main · Drun1baby/JavaSecurityLearning

MyJavaSecStudy/docs/Java安全漫谈.pdf at main · 1diot9/MyJavaSecStudy 挑07之后涉及CC链的内容看,18、19和涉及shiro的可以先不看(其实shiro反序列化的原理差不多,都是找链子,不过因为用的类加载器不一样,会出现一些变化)

Java 反序列化漏洞(二) - Commons Collections | 素十八 su18师傅的反序列化取经路

========================================================

CC链再次挖掘-先知社区 可以尝试一下自己能不能找到其他类利用

CC链再挖掘 | 1diot9's Blog 基于上面的文章,着重于如何审计

java反序列化漏洞commons-collections3.2.1TransformedList触发transform-先知社区

老链新看——CommonsCollections链

<br>

hessian

Hessian反序列化整理 | 1diot9's Blog

Java安全学习——Hessian反序列化漏洞 - 枫のBlog 原理+Apache Dubbo

0ctf2022 hessian-only-jdk writeup jdk原生链-先知社区 tabby挖掘

Hessian 反序列化知一二 | 素十八

<br>

利用链探测

构造java探测class反序列化gadget | 回忆飘如雪 实战下利用链探测,dns法,反序列化炸弹延时法

Java序列化炸弹解析-CSDN博客

<br>

其他链子&姿势

Java反序列化之C3P0链 | Drunkbaby's Blog

分析尝试利用tabby挖掘-SpringAOP链 - Potat0w0

realworldctf old system复盘(jdk1.4 getter jndi gadget)-先知社区 LdapAttribute链

利用特殊反序列化组件攻击原生反序列化入口-先知社区 fj,jk结合ROME,LdapAttribute等

Java利用无外网(下):ClassPathXmlApplicationContext的不出网利用 | 离别歌 第一次知道tomcat和php有自动保存临时文件的机制。里面非预期的脏字符jar包构造没见过

<br>

JNDI <a id="JNDI"></a>

基础内容

Java反序列化之RMI专题01-RMI基础 | Drunkbaby's Blog RMI先简单过一遍就行

Java反序列化之JNDI学习 | Drunkbaby's Blog JNDI要好好看,后面用的很多,学完后可以看一下log4j2漏洞

JNDI · 攻击Java Web应用-Java Web安全 里面引用了一篇命名和目录服务基本概念的文章,记得看,对后面理解RMI和LDAP很有帮助,很多东西都会在调试里遇到

Log4j2漏洞分析 | 1diot9's Blog

========================================================

RMI、JRMP、JEP290、LDAP

这里的目标是:

1、搞清楚RMI的通信流程,搞清楚Server,Registry,Client三者互相的打法

2、了解JRMP在RMI中的作用,知道它和DGC的关系

3、了解两次JEP290的防护和绕过,JEP290(8u121~8u230),JEP290(>8u231)

4、了解JNDI的基本打法,包括codebase远程加载,ldap发送反序列化数据,reference本地工厂(BeanFactory为例)

RMI JRMP JEP290 LDAP基础梳理 | 1diot9's Blog 我这篇写的比较完整,但是不会过于全面,可以先看

下面整理当时看的部分文章

综合梳理

奇安信攻防社区-JAVA JRMP、RMI、JNDI、反序列化漏洞之间的风花雪月 这个感觉最清楚,底下的参考文章也看看

基于Java反序列化RCE - 搞懂RMI、JRMP、JNDI-先知社区

搞懂RMI、JRMP、JNDI-终结篇-先知社区 里面提到的文章也要看

RMI

RMI协议分析 - lvyyevd's 安全博客

Java RMI 攻击由浅入深 | 素十八

RMI-攻击方式总结-安全KER - 安全资讯平台 有比较完整的示例代码

MyJavaSecStudy/docs/Java安全漫谈.pdf at main · 1diot9/MyJavaSecStudy 04-06详细讲了RMI的通信过程

JRMP&JEP290

JRMP通信攻击过程及利用介绍-先知社区

RMI-JEP290的分析与绕过-安全KER - 安全资讯平台

Shiro有key但无回显利用链子-JRMP大法_shiro有key无链怎么办?-CSDN博客 可以通过jrmp进行利用链探测

<br>

高版本JDK绕过

基于反序列化链

RMI JRMP JEP290 LDAP基础梳理 | 1diot9's Blog 5.1.1和5.2.2有讲

基于BeanFactory

探索高版本 JDK 下 JNDI 漏洞的利用方法 - 跳跳糖 除了最基本的EL表达式执行,还有Snakeyaml,XStream等方式(高版本tomcat的forceString被禁)

其他Factory绕过

高版本JNDI注入-高版本Tomcat利用方案-先知社区 tomcat中,非BeanFactory的工厂利用

奇安信攻防社区-【2024补天白帽黑客大会】JNDI新攻击面探索 是上面文章的参考

探索高版本 JDK 下 JNDI 漏洞的利用方法 - 跳跳糖 最后有jdbc相关工厂

SolarWinds Security Event Manager AMF 反序列化 RCE (CVE-2024-0692) - X1r0z Blog Hikari跟Druid一样,都可以实现JNDI+JDBC,都是可以执行初始化sql语句

京麟CTF 2024 ezldap 分析-先知社区 com.sun.jndi.ldap.object.trustSerialData false的绕过

RMI返回恶意stub

[2025]N1CTF WP for n1cat,eezzjs | GSBP's Blog

<br>

JDBC <a id="JDBC"></a>

mysql

MySQL jdbc 反序列化分析 | Drunkbaby's Blog 最经典的mysql-jdbc

mysql JDBC 攻击 | 1diot9's Blog 整理了打法和绕过

从JDBC MySQL不出网攻击到spring临时文件利用-先知社区 这个打法比较新,其中的临时文件上传适用性广

<br>

h2sql

NCTF2024 Web方向题解-CSDN博客 h2Revenge

SolarWinds Security Event Manager AMF 反序列化 RCE (CVE-2024-0692) - X1r0z Blog h2可以结合其他依赖写文件

hsql

基于 hsqldb造成的 jdbc各种利用手法-先知社区

<br>

sqlite

JavaSec/9.JDBC Attack/SQLite/index.md at main · Y4tacker/JavaSec

CISCN2024 writeup(web部分) ezjava

从一道题看利用sqlite打jdbc达到RCE-先知社区

<br>

Postgresql

Postgresql JDBC Attack and Stuff | 素十八 可以设置jdbc url 来加载xml文件

<br>

Derby

derby数据库如何实现RCE - lvyyevd's 安全博客

[N1CTF Junior 2024 Web Official Writeup - X1r0z Blog](

View on GitHub
GitHub Stars95
CategoryDevelopment
Updated7d ago
Forks17

Languages

Java

Security Score

80/100

Audited on Mar 22, 2026

No findings