JAVA安全学习路线-4ra1n

admin 2023年1月8日14:31:19代码审计评论31 views3100字阅读10分20秒阅读模式

B站许少4ra1n的java安全学习路线总结,以下是去年许少博客发的大纲,加上最近b站发的视频讲解,个人进行整理的,非常推荐大家看看,视频在文章最后,建议搭配食用!

基础-1

名称

学习内容

难度

如何使用IDEA

IDEA安装,如何调试,常见BUG如何解决

如何使用Maven

Maven安装配置,常见BUG解决,如何加速,各种常见Maven插件,多模块项目是什么,了解Gradle

⭐⭐

JAVA WEB、常见框架

Servle,Tomcat,JSP,通过XML和注解配置的SSM项目介绍,什么是SpringBoot框架,演示多个Java CMS如何配置启动,常见难点解决,常见Spring相关报错解决

⭐⭐⭐

TOP10漏洞

学习审计JAVA WEB的top10漏洞,审计一些java开发的cms

⭐⭐⭐

微服务(了解即可)

通过简单的Spring Cloud项目演示什么是微服务,以及微服务各个组件的作用

⭐⭐


基础-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



【B站最全的Java安全学习路线】 https://www.bilibili.com/video/BV1Sv4y1i7jf/?share_source=copy_web&vd_source=4077839630528882f3da9fc507a79ed3

JAVA安全学习路线-4ra1n




原文始发于微信公众号(哈拉少安全小队):JAVA安全学习路线-4ra1n

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年1月8日14:31:19
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  JAVA安全学习路线-4ra1n https://cn-sec.com/archives/1505525.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: