JavaThings - Catatan pembicaraan keamanan Java terkait
"Java Security Talk" adalah esai yang saya tulis terkait dengan pembelajaran Java. Ini tidak terlalu ketat dan tidak berteknologi tinggi. Repositori ini terutama untuk merekam dan mengatur, serta melampirkan beberapa kode.
Direktori pembicaraan keamanan Java
- Pembicaraan keamanan Java - 01. Karakteristik dinamis Java - refleksi
- Java Security Talk - 02. Penggunaan refleksi yang sederhana
- Java Security Talk - 03. Beberapa teknik refleksi tingkat lanjut
- Java Security Talk - Analisis proses komunikasi 04.RMI
- Java Security Talk - 05. Menggunakan basis kode untuk menyerang RMI Registry
- Java Security Talk - 06. Pemahaman mendalam tentang protokol RMI dan objek serial
- Java Security Talk - 07. Kerentanan deserialisasi dalam berbagai bahasa
- Java Security Talk- 08. Mengenal Gadget paling sederhana—URLDNS
- Pembicaraan Keamanan Java - 09. Pengenalan pertama ke CommonsCollections
- Java Security Talk - 10. Gunakan TransformedMap untuk menulis POC nyata
- Pembicaraan Keamanan Java - 11. Penjelasan rinci tentang LazyMap
- Pembicaraan Keamanan Java - 12. Versi sederhana CommonsCollections6
- Pembicaraan Keamanan Java - Bab Ekstra 1. Di mana BCEL ClassLoader?
- Java Security Talk - 13. Metode memuat bytecode secara dinamis di Java
- Pembicaraan Keamanan Java - 14. Mengapa CommonsCollections3 diperlukan
- Pembicaraan Keamanan Java - 15. Pemanfaatan TemplateImpl di Shiro
- Java Security Talk - 16.commons-collections4 dan perbaikan kerentanan
- Java Security Talk - 17. Pemanfaatan deserialisasi CommonsBeanutils dan Shiro tanpa koleksi commons
- Java Security Talk - 18. Rantai eksploitasi deserialisasi asli JDK7u21
- Java Security Talk - 19. Konstruksi dan analisis protokol deserialisasi Java
Kode demo
Kode byte:
- Demo pemuatan bytecode jarak jauh: HelloClassLoader
- Sistem defaultnya adalah DefineClass yang memuat bytecode Demo: HelloDefineClass
- Gunakan TemplatesImpl untuk memuat bytecode Demo: HelloTemplatesImpl
- Menggunakan BCEL untuk memuat bytecode Demo: HelloBCEL
Deserialisasi:
- Demo Transformer paling sederhana: CommonsCollectionsIntro.java
- CommonsCollections6 saya yang disederhanakan lebih mudah dipahami semua orang
- Demo Transformer dibuat menggunakan TemplatesImpl: CommonsCollectionsIntro2.java
- Demo Transformer tanpa InvokerTransformer: CommonsCollectionsIntro3.java
- CommonsCollections3 saya yang disederhanakan
- CommonsCollections6 menjalankan beberapa perintah sekaligus: CommonsCollections6Multiple
- Rantai eksploitasi CommonsCollections6 yang mendukung versi commons-collections4.0: CommonsCollections6For4
- Rantai eksploitasi CommonsBeanutils1 saya yang disederhanakan: CommonsBeanutils1
- Versi sederhana dari rantai pemanfaatan asli Java JDK7u21
Deserialisasi Shiro:
- Salah satu aplikasi Web Shiro yang paling sederhana: shirodemo
- Gunakan CommonsCollections6 dan Kunci default Shiro untuk membuat Payload: Client0.java, CommonsCollections6.java, yang mungkin tidak berhasil dideserialisasi di Tomcat.
- Gunakan Kunci default CommonsCollections, TemplatesImpl dan Shiro untuk membuat Payload: Client.java, CommonsCollectionsShiro.java untuk menyelesaikan masalah di atas
- Rantai pemanfaatan deserialisasi dibuat menggunakan commons-beanutils yang disertakan dengan Shiro secara default: CommonsBeanutils1Shiro.java
Alat analisis deserialisasi yang dikembangkan sendiri:
- zkar: https://github.com/phith0n/zkar
- Cara menggunakan zkar untuk memperbaiki masalah ketidakcocokan SerialVersionUID: https://t.zsxq.com/Yz3B6yJ