MCPcopy Index your code
hub / github.com/Y4tacker/JavaSec

github.com/Y4tacker/JavaSec @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
97 symbols 184 edges 34 files 2 documented · 2%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

JavaSec

JavaSec

0.For Me

仅仅只是想写给自己看

一个记录我Java安全学习过程的仓库,本仓库不是真正意义上的教学仓库(rep中的内容都是我在平时的一些笔记没有很强逻辑性,内容水平自然也是参差不齐,可能有些对我来说很简单的便忽略不计对其他人来说却是难点,因此作为一个学习目录的话可能会好很多),单纯这是笔者简单记一些笔记,顺便见证自己从0到0.1的过程吧,另外后面如果看到一些好的东西在学习完之后也会贴上链接,少了很多介绍性的东西,以后等厉害了再慢慢补充吧.当然如果感觉还不错的话,师傅们记得给个 Star 呀 ~

@Y4tacker

2021年10月18日,梦的开始

1.基础篇

1.1 Java安全基础技术补充(建议优先掌握)

1.2 建议学习顺序(面向 Java 安全)

  1. JVM/JLS 基础 -> 2. 类加载与反射/动态代理 -> 3. 序列化与 JEP 290 -> 4. Servlet/Tomcat 生命周期 -> 5. 常见漏洞体系(OWASP/CWE)-> 6. 依赖与供应链安全。

2.反序列化

很早前学了,后面补上,更多是说一点关键的东西,不会很详细,好吧这里再拓展成反序列化专区好了

如果想系统学习CC链、CB链的话这部分还是推荐p牛的Java安全漫谈,我只是简单写写便于自己复习而已(这部分看我下面的share并不适合新人,过了这么久看过网上很多文章还是觉得P牛写的更适合新人)

2.1 反序列化基础技术补充(建议先补理论再看链子)

2.2 建议学习顺序(反序列化)

  1. 先读序列化规范 -> 2. 理解 ObjectInputStream 触发路径 -> 3. 学 URLDNS/CC 等入门链 -> 4. 学 JEP 290 与白名单过滤 -> 5. 再看特定框架(Hessian/XStream/SnakeYAML)利用。

  2. Java 反序列化取经路(强推)

  3. Java反序列化之URLDNS
  4. CommonsCollections1笔记
  5. CommonsCollections2笔记
  6. CommonsCollections3笔记
  7. CommonsCollections5笔记
  8. CommonsCollections6-HashSet笔记
  9. CommonsCollections6-HashMap笔记
  10. CommonsCollections6-Shiro1.2.4笔记
  11. CommonsCollections7笔记
  12. CommonCollectionsWithoutChainedTransformer
  13. 使用TemplatesImpl改造CommonsCollections2
  14. 网上看到的套娃CommonsCollections11
  15. CommonsBeanutils1笔记
  16. CommonsBeanutils1-Shiro(无CC依赖)
  17. FileUpload1-写文件\删除文件
  18. C3P0利用链简单分析
  19. C3P0Tomcat不出网利用(思路就是之前高版本JNDI注入的思路)
  20. 反制Ysoserial0.0.6版本-JRMP
  21. SnakeYAML反序列化及可利用Gadget
  22. SnakeYAML出网探测Gadget(自己瞎琢磨出来的,不过在1.7以下版本就不行)
  23. XStream反序列化学习
  24. 解决反序列化serialVesionUID不一致问题(BestMatch:打破双亲委派对jbxz用工具最方便)
  25. 自己搞的把ROME利用链长度缩小4400-1320(Base64)
  26. JDK7u21
  27. AspectJWeaver写文件
  28. 反序列化在渗透测试当中值得关注的点
  29. UTF-8 Overlong Encoding导致的安全问题(在绕过流量设备上非常有帮助)
  30. 构造java探测class反序列化gadget
  31. 对URLDNS探测class的补充(为什么本地明明没有这个类却有"DNS解析")
  32. 利用Swing构造反序列化SSRF/RCE(JDK CVE-2023-21939)
  33. Hessian反序列化
  34. Hessian 反序列化知一二

  35. hessian-only-jdk利用补充

  36. hessian-onlyjdk-jdk11+jdk.jfr.internal.Utils利用补充

3.Fastjson/Jackson专区

可以对比jackson简单学习下,这里我也会简单提一下jackson的一些利用,当然不会很详细,但是会简单列出一些触发原理,而且有些payload是共通的,这里也不以收集各个依赖下利用的payload为主

3.1 JSON反序列化基础技术补充(Fastjson / Jackson)

3.2 建议学习顺序(Fastjson / Jackson)

  1. 先搞清楚类型系统与自动类型机制 -> 2. 看历史漏洞成因与补丁策略 -> 3. 再学利用链触发细节 -> 4. 最后沉淀黑/白盒识别与加固 checklist。

  2. Jackson

  3. Jackson的利用触发及小细节(比较鸡肋仅作为学习了解)

  4. Jackson原生反序列化Gadgets(实用)

  5. Fastjson

  6. Fastjson基本用法

  7. [Fastjson1.1.15-1.2.4与BCEL字节码加载](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson专区/Fastjson1.1.15-1.2

Extension points exported contracts — how you extend this code

SPIService (Interface)
(no doc) [4 implementers]
1.基础知识/SPI/code/src/main/java/com/yyds/SPIService.java

Core symbols most depended-on inside this repo

equals
called by 9
12.Shiro/Tomcat-Header长度受限突破shiro回显/code/T.java
getFV
called by 7
12.Shiro/Tomcat-Header长度受限突破shiro回显/code/TomcatEcho.java
read
called by 5
其他/有趣的马或命令执行/Acctl.java
doHelp
called by 2
比赛反思/2022/3/2022GooGleCTF/LOG4J/chatbot/src/main/java/com/google/app/App.java
getFileBytes
called by 2
6.JavaAgent/LicenceCrack/src/main/java/MyTransformer.java
doCommand
called by 1
比赛反思/2022/3/2022GooGleCTF/LOG4J/chatbot/src/main/java/com/google/app/App.java
chat
called by 1
比赛反思/2022/3/2022GooGleCTF/LOG4J/server/app.py
execute
called by 1
1.基础知识/SPI/code/src/main/java/com/yyds/SPIService.java

Shape

Method 60
Class 33
Function 2
Interface 1
Route 1

Languages

Java97%
Python3%

Modules by API surface

6.JavaAgent/LicenceCrack/src/main/java/MyTransformer.java5 symbols
6.JavaAgent/AgentMain/code/AgentMainTest/src/main/java/Transformer.java5 symbols
6.JavaAgent/AgentMain/code/AgentMainTest/src/main/java/AttachTest.java5 symbols
12.Shiro/Tomcat-Header长度受限突破shiro回显/code/T.java5 symbols
1.基础知识/两种实现Java类隔离加载的方法/code/src/main/java/com/loader/MyClassLoaderParentFirst.java5 symbols
比赛反思/2022/3/2022GooGleCTF/LOG4J/chatbot/src/main/java/com/google/app/App.java4 symbols
6.JavaAgent/LicenceCrack/src/main/java/CrackLicenseTest.java4 symbols
5.内存马学习/Spring/利用intercetor注入Spring内存马/code/qqq.java4 symbols
12.Shiro/Tomcat-Header长度受限突破shiro回显/code/TomcatEcho.java4 symbols
1.基础知识/Java 类字节码编辑/code/testjst/src/main/java/HelloWorld.java4 symbols
比赛反思/2022/3/2022GooGleCTF/LOG4J/server/app.py3 symbols
其他/有趣的马或命令执行/Acctl.java3 symbols

Datastores touched

(mysql)Database · 1 repos
testcmsDatabase · 1 repos
testsqlDatabase · 1 repos

For agents

$ claude mcp add JavaSec \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact