JavaThings - Java安全漫談筆記相關
《Java安全漫談》是我在寫的一點Java學習相關的隨筆,不是很嚴謹,也不是啥高科技。這個Repository主要是記錄並整理一下,附加一些程式碼。
Java安全漫談目錄
- Java安全漫談- 01.Java的動態特性-反射
- Java安全漫談- 02.反射的簡單利用
- Java安全漫談- 03.反射的幾個進階技巧
- Java安全漫談- 04.RMI的通訊過程分析
- Java安全漫談- 05.利用codebase攻擊RMI Registry
- Java安全漫談- 06.深入理解RMI協定與序列化對象
- Java安全漫談- 07.不同語言中的反序列化漏洞
- Java安全漫談- 08.認識最簡單的Gadget——URLDNS
- Java安全漫談- 09.初識CommonsCollections
- Java安全漫談- 10.用TransformedMap寫真正的POC
- Java安全漫談- 11.LazyMap詳解
- Java安全漫談- 12.簡化版CommonsCollections6
- Java安全漫談- 番外篇1. BCEL ClassLoader去哪了?
- Java安全漫談- 13.Java中動態載入字節碼的那些方法
- Java安全漫談- 14.為什麼需要CommonsCollections3
- Java安全漫談- 15.TemplatesImpl在Shiro的利用
- Java安全漫談- 16.commons-collections4與漏洞修復
- Java安全漫談- 17.CommonsBeanutils與無commons-collections的Shiro反序列化利用
- Java安全漫談- 18.原生反序列化利用鏈JDK7u21
- Java安全漫談- 19.Java反序列化協議構造與分析
Demo程式碼
字節碼:
- 遠端字節碼載入Demo:HelloClassLoader
- 系統預設defineClass載入字節碼Demo:HelloDefineClass
- 使用TemplatesImpl載入字節碼Demo:HelloTemplatesImpl
- 使用BCEL載入字節碼Demo:HelloBCEL
反序列化:
- 最簡單的Transformer Demo:CommonsCollectionsIntro.java
- 我簡化的CommonsCollections6,更方便大家理解
- 利用TemplatesImpl構造的Transformer Demo:CommonsCollectionsIntro2.java
- 無InvokerTransformer的Transformer Demo:CommonsCollectionsIntro3.java
- 我簡化的CommonsCollections3
- CommonsCollections6一次執行多個指令:CommonsCollections6Multiple
- 支援commons-collections4.0版本的CommonsCollections6利用鏈:CommonsCollections6For4
- 我簡化的CommonsBeanutils1利用鏈:CommonsBeanutils1
- 簡化版Java原生利用鏈JDK7u21
Shiro反序列化:
- 一個最簡單的Shiro Web應用程式:shirodemo
- 使用CommonsCollections6與Shiro預設Key建構Payload:Client0.java、CommonsCollections6.java,在Tomcat中可能無法成功反序列化
- 使用CommonsCollections、TemplatesImpl與Shiro預設Key建構Payload:Client.java、CommonsCollectionsShiro.java,解決上述問題
- 使用Shiro預設自帶的commons-beanutils建構的反序列化利用鏈:CommonsBeanutils1Shiro.java
自研反序列化分析工具:
- zkar: https://github.com/phith0n/zkar
- 如何使用zkar修復SerialVersionUID不符的問題:https://t.zsxq.com/Yz3B6yJ