Skip to content

d-linlin/JavaSecurityLearning

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 

Repository files navigation

JavaSecurityLearning

可能写的有点乱,但基本是形成了一个路线形式的文章,后续可能会把排版优化一下哈哈哈

记录一下 Java 安全学习历程,也有参考 Y4tacker 师傅的学习笔记 https://github.com/Y4tacker/JavaSec

也在整理自己的 Java 学习路线,学了也有一会儿了,总结出一点小心得

先从开发学起

推荐的是这些:

先学 Springboot【狂神说Java】SpringBoot最新教程IDEA版通俗易懂,前面部分是 Thymeleaf 模板引擎的开发,后面是一些组件的基本使用,很基础。

学一下 vue:尚硅谷Vue2.0+Vue3.0全套教程丨vuejs从入门到精通

学完这两个之后可以自己过一个小项目【实战】基于SpringBoot+Vue开发的前后端分离博客项目完整教学

  • 学完这些内容最多花费两个月时间。

如果中途有什么看不懂的,也可以推荐看 Java 基础,哪块不懂看哪块,二倍速走起看【狂神说Java】Java零基础学习视频通俗易懂

Java 基础

可以看b站白日梦组长的视频,讲的非常好

一开始学还是会有点懵的,学到后面自然而然就会了

Java 反序列化基础

接着就可以开始 CC 链了;CC 链是 1-6-3-2-4-5-7

还有一个 CC11;这一块 CC 链的学习要多自己总结,有利于后续的学习。

CC 链部分结束,进入 shiro 部分,shiro 之前我们已经走过开发了,所以理解起来很简单。

Shiro 721 的可能后续会学习吧,现在先不学习。

进入到新的阶段

Java 反序列化进阶

LDAP 是包含在 JNDI 里面的


学完上面的之后就可以开始学习其他的了。

Fastjson&&Jackson

值得一提的是,2022 蓝帽杯初赛有一道 fastjson 1.2.68 的题目,师傅们可以去我的仓库中,到本地复现。CTFReposityStore

Log4j2

这些学完之后可以学一下内存马,Weblogic,Tomcat 和 Spring 开发;这里先学 Spring 开发。

Spring开发学习

Weblogic

emmm 懒癌犯了,晚点再看

EL 表达式注入

内存马

个人认为内存马刚开始学习的时候和反序列化并无太大关联,反而和 Servlet,Tomcat 关联度非常高。

我觉得还是需要打一下基础的,学习路线如下

基础部分:Tomcat 架构 ---> Servlet 相关基础知识 ----> JSP 的马 ---->

学完基础就可以开始看内存马了,Web 服务的流程应该是 Listener ---> Filter ----> Servlet;但是先学 Listener

内存马的学习:Filter ----> Listener -----> Servlet; 内存马与反序列化

关于内存马的环境搭建可以看我这一篇文章:Servlet 项目搭建

关于 Java 代码审计

最近自己也在看吧,感觉有点意思,Java 代码审计还是有点难度的;建议先从 WebGoat 入手,后续再看吧。

最近学下来,感觉先学完 WebGoat,然后跟着复现一些漏洞吧,比如 RuoYi 的一些漏洞,前期先看其他师傅的文章跟着复现,后续可以自己审计一些代码。

详细的代码审计的文章与资料,欢迎师傅们进到 [Java Owasp Top10 审计](https://github.com/Drun1baby/JavaSecurityLearning/tree/main/JavaSecurity/OWASP TOP10),项目中查看。这个项目是我参考于 joychou93 师傅写的 java-sec-code 项目的,并且自己加上了一些理解

更新于 2022.10.13

现在一些基础的东西已经没问题了,如果在把上述内容都学完之后,谈一谈我认为蛮重要的几个点吧。

  • 要温故而知新,像 CC 链这种 EXP,能手写尽量手写,其他的链子也是,要有独立分析的能力
  • 对于 Java 代码审计也是,需要有独立分析的能力,学会总结审计方法
  • 最近自己也在刷力扣,还是想保证一些编程手感,并且为日后的手撕代码做准备。

在学完上述内容之后该学什么

我认为还是应该查漏补缺,下面会放一些我觉得蛮有意思的东西供师傅们学习

Java反序列化之C3P0链

Java OWASP 中的 XXE 代码审计

Java OWASP 中的 SQL 注入代码审计

Java 代码审计之华夏 ERP CMS v2.3

Java反序列化之 SnakeYaml 链

因为 SnakeYaml 的链子和 Fastjson 特别像,所以又复习了一遍 Fastjson 的源码

Java反序列化Fastjson篇05-写给自己看的一些源码深入分析

懒癌终于不犯了,开始学习 Struts2 系列漏洞,这一块是没有必要特别去学开发的,因为 Struts2 的应用已经太少太少了。

Java Struts2 学习与环境搭建

Java Struts2 系列 S2-001

在进行代码审计的时候,多想一想有漏洞的代码是为什么产生的,最好是自己手写一遍有漏洞的代码,并且进行修复。

在审计 CMS 的时候,审计出漏洞之后,不光是要明白怎么打,更要明白如何修复。

About

记录一下 Java 安全学习历程

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 80.7%
  • HTML 9.8%
  • JavaScript 3.0%
  • Shell 2.2%
  • C 1.5%
  • CSS 1.3%
  • Other 1.5%