(主要是整理别人写的内容,非原创。我只是知识搬运工
学习路线-作者:4ra1n
直接上图:
基础-2
名称 |
学习内容 |
难度 |
Java反射 |
详细学习反射的各种用法,并介绍常见问题,比如反射调用方法、修改字段以及如何修改final static变量等,学习高版本绕过反射限制 |
⭐⭐ |
Class文件结构 |
从真实的Class文件每一个字节开始分析,介绍字节码的每一部分的意义,如何参考官方文档自己写工具解析Class文件 |
⭐⭐⭐⭐ |
JVM |
简单介绍字节码如何在JVM中执行,以及常见的JVM基础,例如类加载器与双亲委派模型 |
⭐⭐ |
字节码指令(用到再学) |
参考JVM官方文档介绍常见的字节码指令的作用和意义 |
⭐⭐⭐ |
ASM/Javassist(用到再学) |
如何使用ASM修改字节码,如何使用Javassist生成字节码,通过Javassist框架实现插桩,和ASM进行对比 |
⭐⭐⭐⭐ |
Java Agent |
启动前和运行中Agent,静态和动态的Java Agent技术,从简单的Hello World例子开始,破解简单的软件,最终自己实现一个简单的RASP防御,从ASM和Javassist两种方式实现 |
⭐⭐⭐⭐⭐ |
JNI与JNA |
介绍JNI技术,实现Java加载Shellcode |
⭐⭐⭐⭐ |
RMI |
RMI是什么,攻击Server端,攻击Registry端,攻击Client端,攻击DGC |
⭐⭐⭐ |
JNDI注入 |
JNDI注入原理,8u191以下如何攻击、8u191以上如何打(通过本地Factory的绕过,通过LDAP打本地Gadget的绕过),如何审计,尝试自己写一个简单的jndi exploit |
⭐⭐⭐⭐ |
JMX漏洞 |
介绍什么是JMX, MLet安全问题,演示如何利用JMX实现RCE |
⭐⭐⭐ |
JDWP |
参考Oracle官方文档介绍JDWP协议,并演示如何RCE |
⭐⭐⭐ |
进阶
名称 |
学习内容 |
难度 |
序列化数据结构 |
参考Oracle官方文档分析序列化数据 |
⭐⭐⭐ |
反序列化漏洞基础 |
学习分析URLDNS、CC1-CC7、CB、7u21、8u20等常用反序列化链,对每一条链进行手动调试分析 |
⭐⭐⭐ |
阅读ysoserial源码 |
分析这个工具的代码,并尝试自己写工具、尝试魔改(需要学懂ASM/Javassist) |
⭐⭐ |
反序列化炸弹 |
学习什么是反序列化炸弹,如何利用它探测gadget |
⭐⭐⭐ |
JEP290 |
什么是JEP290,它从哪几方面修复了反序列化漏洞,JEP290的鸡肋绕过 |
⭐⭐⭐⭐ |
反序列化数据缩小 |
从字节码和序列化数据结构本身来分析,演示修改字节码进行缩小 |
⭐⭐⭐⭐ |
反序列化绕WAF |
演示如何通过延时分块传输和脏数据绕WAF |
⭐⭐⭐⭐ |
Hessian反序列化 |
学习Hessian协议并分析Dubbo的历史漏洞 |
⭐⭐⭐⭐ |
XML-RPC反序列化 |
学习XML-RPC协议并分析OFBIZ的历史漏洞 |
⭐⭐⭐⭐ |
Fastjson反序列化 |
学习Fastjson历史版本1.2.x各个小版本的绕过,1.2.47以前的分析和绕过、1.2.47-1.2.68的分析和绕过,1.2.80的分析,出网和不出网利用链的分析 |
⭐⭐⭐⭐ |
XStream/Jackson |
学习XStream、Jackson的多个历史漏洞,历史上有很多Gadget,重点放在如何寻找新的Gadget |
⭐⭐⭐ |
SnakeYaml反序列化 |
学习SnakeYaml的多个历史漏洞 |
⭐⭐⭐ |
Weblogic |
各种反序列化、二次反序列化漏洞,14882、14883绕过,XML Decoder,IIOP/T3,文件上传、SSRF漏洞,复现演示CVE-2018-3245,CVE-2018-3191,CVE-2020-14645,CVE-2020-14756,CVE-2020-2551,CVE-2021-2394等历史漏洞 |
⭐⭐⭐ |
Shiro550 |
经典Shiro反序列化漏洞分析和复现,学习如何手动编写探测和利用工具 |
⭐⭐⭐ |
Shiro进阶 |
学习如何通过shiro注入内存马、修改key,绕过请求头过大限制的办法,对请求头长度严格限制情况下的两种绕过思路,存在Nginx反代和负载均衡下的问题解决,以及如何检测 |
⭐⭐⭐⭐⭐ |
Shiro721 |
介绍Padding Oracle Attack并演示如何利用Shiro高版本 |
⭐⭐⭐⭐ |
Shiro权限绕过 |
分析历史上所有的Shiro权限绕过漏洞 |
⭐⭐⭐ |
Spring Security权限绕过 |
分析历史上所有的Spring Security权限绕过漏洞 |
⭐⭐⭐ |
SPEL相关 |
学习什么是SPEL并分析历史上所有SPEL导致的RCE漏洞,例如Spring Cloud Function和Spring Cloud Gateway等系列 |
⭐⭐⭐ |
Spring相关 |
学习SpringBoot Actuator多种利用姿势,Spring RCE漏洞的原理、复现 |
⭐⭐⭐ |
Tomcat漏洞相关 |
复现分析PUT RCE,CGI Servlet RCE,SESSION RCE以及AJP RCE等经典漏洞,其他鸡肋洞 |
⭐⭐⭐⭐ |
内存马技术 |
内存马原理学习,学习Serlvet,Filter,Listener,Valve,Websocket,Executor,Spring Controller,Interceptor等所有类型的内存马,动手实践调试每一种内存马,并研究如何挖掘内存马的思路(核心context) |
⭐⭐⭐⭐ |
内存马进阶 |
介绍Tomcat内存马的查杀,如何反查杀,两种持久化后门的思路 |
⭐⭐⭐⭐ |
其他内存马相关 |
介绍zhouyu马,介绍Java Agent内存马原理和查杀,学习不死马与线程马,c0ny1师傅的jsp查杀,核心:类名,存在文件,dump class查杀,sa-jdi dump agent |
⭐⭐⭐⭐ |
Log4j2漏洞 |
学习Log4j2原理与最初版RCE和RC1绕过,并学习2.15的特殊绕过(特殊操作系统),以及拒绝服务漏洞、原理,几种修复方案(以洞修洞),并基于Java Agent编写线上修复工具,尝试自己写burp检测插件 |
⭐⭐⭐⭐ |
Struts2 |
学习分析Struts2历史漏洞,大部分是OGNL相关的,学习下如何绕过的 |
⭐⭐⭐ |
其他组件漏洞 |
Apache Solr(几个RCE)、ApacheFlink(文件上传)、Apache Spark(命令注入)、Apache Skywalking(Sqli-RCE)、JDBC反序列化(尝试自己写一个fake mysql server) |
⭐⭐⭐ |
进阶 |
tabby、codeql、自己分析字节码、自己写JVM |
⭐⭐⭐⭐ |
todo |
todo |
todo |
他的blibli:https://www.bilibili.com/video/BV1Sv4y1i7jf/?vd_source=8a8862ae9b252c497ebdca8ecdf008dc
github:java安全项目
这些项目的好处是,你不用自己去搜相关的组件jar包,一般简单的poc也有,一键启动,直接导入idea进行代码分析和调试,省去查找的过程。要么是有一定知识注解可以给你学的时候去看,可以少走一些配置方面的弯路。仅供各位参考
-
https://github.com/Y4tacker/JavaSec
-
https://github.com/Drun1baby/JavaSecurityLearning
原文始发于微信公众号(天才少女Alpha):java 安全学习路线
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论