Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

记录一下 Java 安全学习历程,也算是半条学习路线了

Notifications You must be signed in to change notification settings

Mengbius/JavaSecurityLearning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

57 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 的时候,审计出漏洞之后,不光是要明白怎么打,更要明白如何修复。

更新于 2023年1月28日

走到这一步我觉得需要学习一下对应的开发,这个开发不是单纯的 Java 开发,比如这些课题 "用 golang 重构一个 sqlmap",比如 "如何自己写一个扫描器",如何写 "burpsuite 插件",目前我正在学习这一部分。

另有一些新的 Java 产出文章,有兴趣的师傅可以具体见博客 https://drun1baby.github.io/

About

记录一下 Java 安全学习历程,也算是半条学习路线了

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 92.1%
  • HTML 3.6%
  • Python 3.5%
  • CSS 0.4%
  • Dockerfile 0.3%
  • FreeMarker 0.1%

AltStyle によって変換されたページ (->オリジナル) /