记录一下我的Java安全学习历程。会不定时更新索引和代码仓库。
-
- CC链
- hessian
- 其他链子&姿势
-
- 基础内容
- 高版本JDK绕过
- 基于BeanFactory
- 其他Factory绕过(主要结合JDBC打)
-
- shiro反序列化
- shiro越权
-
-
若依
-
WebGoat
-
泛微Ecology9
-
用友U8Cloud
-
-
- jar-analyzer
- tabby
- CodeQL
主要目标是学会Java基础语法就行,不用一下子学太深,之后遇到不会的再回来查就行
柏码知识库 | JavaSE 笔记(一)走进Java语言 这个比较推荐,看章节目录的(一)~(六)就行,后面SpringMVC,SpringBoot也可以看这个网站
JavaGuide(Java学习&面试指南) | JavaGuide
【狂神说Java】Java零基础学习视频通俗易懂_哔哩哔哩_bilibili b站看其他的也行,比如黑马,找自己适合的就行
主要是学习反射,类加载,动态代理,各种命令执行方式等概念,为后面的学习打下基础。
一开始看不懂很正常,能有个印象就行,后面在具体问题中发现自己不会时再回来看;多问AI
想快一点的话,可以只看这部分文章。选取了两位师傅的文章,可以相互补充。
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链看一下
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 | 素十八 涉及到了反序列化具体原理,比较深入
CC链是Java反序列化的开始,每个人都应该好好学习。
Java反序列化Commons-Collections篇01-CC1链 | Drunkbaby's Blog 小叮师傅的博客讲了所有的CC链,同时也有环境搭建的示例,而且还有一张全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链=========================
Java安全学习——Hessian反序列化漏洞 - 枫のBlog
Java反序列化之C3P0链 | Drunkbaby's Blog c3p0,可以打二次反序列化
分析尝试利用tabby挖掘-SpringAOP链 - Potat0w0
realworldctf old system复盘(jdk1.4 getter jndi gadget)-先知社区 LdapAttribute链
利用特殊反序列化组件攻击原生反序列化入口-先知社区 fj,jk结合ROME,LdapAttribute等
Java利用无外网(下):ClassPathXmlApplicationContext的不出网利用 | 离别歌 第一次知道tomcat和php有自动保存临时文件的机制。里面非预期的脏字符jar包构造没见过
Java反序列化之RMI专题01-RMI基础 | Drunkbaby's Blog RMI先简单过一遍就行
Java反序列化之JNDI学习 | Drunkbaby's Blog JNDI要好好看,后面用的很多,学完后可以看一下log4j2漏洞
JNDI · 攻击Java Web应用-Java Web安全 里面引用了一篇命名和目录服务基本概念的文章,记得看,对后面理解RMI和LDAP很有帮助,很多东西都会在调试里遇到
=========================快速入门的话,可以先只看上面部分的=========================
探索高版本 JDK 下 JNDI 漏洞的利用方法 - 跳跳糖 除了最基本的EL表达式执行,还有Snakeyaml,XStream等方式(高版本tomcat的forceString被禁)
SolarWinds Security Event Manager AMF 反序列化 RCE (CVE-2024-0692) - X1r0z Blog Hikari跟Druid一样,都可以实现JNDI+JDBC,都是可以执行初始化sql语句
探索高版本 JDK 下 JNDI 漏洞的利用方法 - 跳跳糖 jdk17的题特别喜欢考JNDI+JDBC
MyJavaSecStudy/docs/Java安全漫谈.pdf at main · 1diot9/MyJavaSecStudy 04-06详细讲了RMI的通信过程
京麟CTF 2024 ezldap 分析-先知社区 com.sun.jndi.ldap.object.trustSerialData false的绕过
奇安信攻防社区-【2024补天白帽黑客大会】JNDI新攻击面探索
MySQL jdbc 反序列化分析 | Drunkbaby's Blog 最经典的mysql-jdbc
============如果真的很急,JDBC可以先只看上面这一个mysql,其他的遇到了再学=================
从JDBC MySQL不出网攻击到spring临时文件利用-先知社区 这个打法比较新,其中的临时文件上传适用性广
NCTF2024 Web方向题解-CSDN博客 h2Revenge
SolarWinds Security Event Manager AMF 反序列化 RCE (CVE-2024-0692) - X1r0z Blog h2可以结合其他依赖写文件
JavaSec/9.JDBC Attack/SQLite/index.md at main · Y4tacker/JavaSec
CISCN2024 writeup(web部分) ezjava
derby数据库如何实现RCE - lvyyevd's 安全博客
N1CTF Junior 2024 Web Official Writeup - X1r0z Blog
JDBC-Attack 利用汇总 - Boogiepop Doesn't Laugh
Jdbc碎碎念三:内存数据库 | m0d9's blog h2sql,hsql,sqlite,derby
Java反序列化Shiro篇01-Shiro550流程分析 | Drunkbaby's Blog
Java反序列化Shiro篇02-Shiro721流程分析 | Drunkbaby's Blog
====================shiro反序列化快速入门的话,可以只看上面的======================
Shiro RememberMe 漏洞检测的探索之路 - CT Stack 安全社区 通过密钥正常错误时,回显中rememberMe字段的不同来实现密钥爆破
Shiro绕过Header长度限制进阶利用 | Bmth's blog 里面还提到pen4uin师傅的文章,也可以去看看
待完善。。。
Java反序列化Fastjson篇01-FastJson基础 | Drunkbaby's Blog 小叮师傅写的不错,可以先看他的fastjson系列文章,一共5篇,前四篇必看,里面列举poc的可以略看,主要先搞懂各版本为什么能这样绕过
Fastjson 反序列化漏洞 · 攻击Java Web应用-Java Web安全
=========================快速入门的话,可以只看上面的=========================
FastJsonParty/Fastjson全版本检测及利用-Poc.md at main · lemono0/FastJsonParty fastjson主要是在黑盒条件下利用,这个项目给了各版本的探测利用姿势
safe6Sec/Fastjson: Fastjson姿势技巧集合
FastJson与原生反序列化 fastjson在原生反序列化中起到toString-->getter的作用
FastJson与原生反序列化(二) 讲了高版本fastjson怎么在原生反序列化中进行绕过
Java反序列化之 SnakeYaml 链 | Drunkbaby's Blog 比较SnakeYaml反序列化的fastjson的异同;了解SPI机制是怎么被利用的
SnakeYaml利用总结 | 1diot9's Blog 列举了常用的poc;我仓库有对应poc,可以直接用
=========================快速入门的话,可以先只看上面的=========================
Java利用无外网(上):从HertzBeat聊聊SnakeYAML反序列化 | 离别歌
奇安信攻防社区-SnakeYaml 不出网 RCE 新链(JDK原生链)挖掘
Java内存马系列-01-基础内容学习 | Drunkbaby's Blog 可以先看01,02,03,05,里面提到的方法适用于传统JavaWeb项目(Tomcat为中间件的)
基于内存 Webshell 的无文件攻击技术研究-安全KER - 安全资讯平台 详细讲了Spring环境下,如何一步步动态注册一个Controller或者Interceptor来实现内存马注入
针对Spring MVC的Interceptor内存马 - bitterz - 博客园 是上面landgrey师傅文章的二创
奇安信攻防社区-利用 intercetor 注入 spring 内存 webshell 也是landgrey师傅的
Spring内存马学习 | Bmth's blog 这里没讲原理,主要是给出了能直接用的内存马
=====================快速入门的话,可以先只看上面的几篇文章======================
bitterzzZZ/MemoryShellLearn: 分享几个直接可用的内存马,记录一下学习过程中看过的文章
Getshell/Mshell: Memshell-攻防内存马研究
W01fh4cker/LearnJavaMemshellFromZero: 【三万字原创】完全零基础从0到1掌握Java内存马,公众号:追梦信安
上面这三篇都是内存马学习的相关项目,里面有很多优秀的文章和案例代码
奇安信攻防社区-Solon框架注入内存马 里面提到的Java Object Searcher值得学习
c0ny1/java-object-searcher: java内存对象搜索辅助工具
Shiro RememberMe 漏洞检测的探索之路 - CT Stack 安全社区 这里也有用到Java-object-searcher 构造tomcat回显
半自动化挖掘request实现多种中间件回显 | 回忆飘如雪 java-object-searcher工具的作者
内存对象搜索原理剖析-先知社区 java-object-searcher原理
ReaJason/MemShellParty: 一款专注于 Java 主流 Web 中间件的内存马快速生成工具,致力于简化安全研究人员和红队成员的工作流程,提升攻防效率
JNI攻击 · 攻击Java Web应用-Java Web安全
LandGrey/SpringBootVulExploit: SpringBoot 相关漏洞学习资料,利用方法和技巧合集,黑盒安全评估 check list 总结了SpringBoot的常见利用方式
主要是jdk自带的VisualVM看jdk版本,heapdump_tools分析依赖和密码
Springboot信息泄露以及heapdump的利用_heapdump信息泄露-CSDN博客
从JDBC MySQL不出网攻击到spring临时文件利用-先知社区
yhy0/ExpDemo-JavaFX: 图形化漏洞利用Demo-JavaFX版 GUI工具的开发框架
待完善。。。
Java安全慢游记 非常好整理,强烈推荐,有基础也有例子,还讲了Tabby和CodeQL在审计中的运用
♪(^∇^*)欢迎肥来!RuoYi历史漏洞 | 高木のBlog
SecurityList/Java_OA/RuoYi.md at main · ax1sX/SecurityList
charonlight/RuoYiExploitGUI: 若依最新定时任务SQL注入可导致RCE漏洞的一键利用工具
WebGoat靶场-身份认证缺陷 | 1diot9's Blog
WebGoat代码审计-03-目录遍历漏洞 | Drunkbaby's Blog
泛微e-cology9 browser.jsp SQL注入漏洞分析 | 0xf4n9x's Blog
【漏洞复现】泛微E-Cology V9 browser.jspSQL注入漏洞及分析
changeUserInfo信息泄露+ofsLogin任意用户登录 | 1diot9's Blog
泛微e-cology9 changeUserInfo信息泄漏及ofsLogin任意用户登录漏洞分析
用友U8cloud-esnserver接口RCE | 1diot9's Blog
用友U8cloud-ServiceDispacherServlet反序列化 | 1diot9's Blog
用友U8cloud-LoginVideoServlet接口反序列化 | 1diot9's Blog
用起来比tabby和codeql都要简单,而且找到的链子也比较全,目前的不足是:对source,sink,sanitizer的设置不太灵活。总体来说,非常适合当作最先接触的辅助工具。
1. Neo4j CQL - 数据类型 这个写的很详细,有基础,也有案例,还提供了很多模板查询语句,十分推荐
Codeql全新版本从0到1-先知社区 25年的文章,比较新
利用Github Actions生成CodeQL数据库 -- 以AliyunCTF2024 Chain17的反序列化链挖掘为例 - KingBridge - 博客园
aliyun ctf chain17 回顾(超详细解读)-先知社区
CodeQL从入门到入土 - FreeBuf网络安全行业门户
原创 Paper | CodeQL 入门和基本使用 | CTF导航
细谈使用CodeQL进行反序列化链的挖掘过程-SecIN 相关文章关键词:codeql java反序列化
利用codeql查找hsqldb2.7.3最新反序列化链-先知社区 里面的参考文章也值得看
safe6Sec/CodeqlNote: Codeql学习笔记
这里是其他师傅整理的学习路线,我这里仅列举了我看过的一些,如果有其他推荐的,可以私聊我
前言 · 攻击Java Web应用-[Java Web安全]
Y4tacker/JavaSec: a rep for documenting my study, may be from 0 to 0.1
Java安全慢游记 着眼于代码审计,里面较为系统的讲了Tabby和CodeQL的使用
Drun1baby/JavaSecurityLearning: 记录一下 Java 安全学习历程,也算是半条学习路线了
phith0n/JavaThings: Share Things Related to Java - Java安全漫谈笔记相关内容
B站最全的Java安全学习路线_哔哩哔哩_bilibili 许少,推荐一下他写的工具,jar-analyzer
LyleMi/Learn-Web-Hacking: Study Notes For Web Hacking / Web安全学习笔记 这个是Web安全的
vulhub/java-chains: Vulhub Vulnerability Reproduction Designated Platform 利用链神器
jar-analyzer/jar-analyzer: Jar Analyzer - 一个 JAR 包 GUI 分析工具,方法调用关系搜索,方法调用链 DFS 算法分析,模拟 JVM 的污点分析验证 DFS 结果,字符串搜索,Java Web 组件入口分析,CFG 程序分析,JVM 栈帧分析,自定义表达式搜索。官方文档:https://docs.qq.com/doc/DV3pKbG9GS0pJS0tk 比tabby和codeql更简单的审计工具,功能也很丰富
ReaJason/MemShellParty: 一款专注于 Java 主流 Web 中间件的内存马快速生成工具,致力于简化安全研究人员和红队成员的工作流程,提升攻防效率 web版的内存马生成工具,可以和jmg一起用