JavaThings - Java セキュリティ関連のトーク ノート
「Java Security Talk」は、Java の学習に関連して私が書いているエッセイです。あまり厳密ではなく、ハイテクでもありません。このリポジトリは主にコードの記録と整理、およびコードの添付を目的としています。
Java セキュリティ トーク ディレクトリ
- Javaセキュリティトーク - 01. Javaの動的特性 - リフレクション
- Java Security Talk - 02. リフレクションの簡単な使い方
- Java Security Talk - 03. いくつかの高度なリフレクション手法
- Java Security Talk - 04.RMI通信プロセス分析
- Java Security Talk - 05. コードベースを使用した RMI レジストリの攻撃
- Java Security Talk - 06. RMI プロトコルとシリアル化されたオブジェクトについての深い理解
- Java Security Talk - 07. さまざまな言語における逆シリアル化の脆弱性
- Java Security Talk - 08. 最も単純なガジェットを理解する — URLDNS
- Java Security Talk - 09. CommonsCollections の最初の紹介
- Java Security Talk - 10. TransformedMap を使用して実際の POC を作成する
- Java Security Talk - 11. LazyMap の詳細説明
- Java Security Talk - 12. 簡易版 CommonsCollections6
- Java Security Talk - 番外編 1. BCEL ClassLoader はどこにありますか?
- Java Security Talk - 13. Java でバイトコードを動的にロードする方法
- Java Security Talk - 14. CommonsCollections3 が必要な理由
- Java Security Talk - 15.Shiro での TemplatesImpl の活用
- Java Security Talk - 16.commons-collections4 と脆弱性の修正
- Java Security Talk - 17. Commons-collections を使用しない CommonsBeanutils と Shiro デシリアライゼーションの使用
- Java Security Talk - 18. ネイティブ逆シリアル化エクスプロイト チェーン JDK7u21
- Java Security Talk - 19. Java デシリアライゼーション プロトコルの構築と分析
デモコード
バイトコード:
- リモートバイトコード読み込みデモ: HelloClassLoader
- システムのデフォルトでは、defineClass がバイトコードをロードします。 デモ: HelloDefineClass
- TemplatesImpl を使用してバイトコードをロードするデモ: HelloTemplatesImpl
- BCEL を使用してバイトコードをロードするデモ: HelloBCEL
逆シリアル化:
- 最も単純な Transformer のデモ: CommonsCollectionsIntro.java
- 私の簡略化された CommonsCollections6 は誰にとっても理解しやすいです
- TemplatesImpl: CommonsCollectionsIntro2.java を使用して構築された Transformer デモ
- InvokerTransformer を使用しない Transformer のデモ: CommonsCollectionsIntro3.java
- 私の簡略化された CommonsCollections3
- CommonsCollections6 は複数のコマンドを一度に実行します: CommonsCollections6Multiple
- commons-collections4.0 バージョンをサポートする CommonsCollections6 エクスプロイト チェーン: CommonsCollections6For4
- 私の簡略化した CommonsBeanutils1 エクスプロイト チェーン: CommonsBeanutils1
- Javaネイティブ利用チェーンJDK7u21の簡易版
シロの逆シリアル化:
- 最もシンプルなShiro Webアプリケーションの1つ: hirodemo
- CommonsCollections6 と Tora のデフォルト キーを使用してペイロード: Client0.java、CommonsCollections6.java を構築します。これらは Tomcat では正常に逆シリアル化されない可能性があります。
- 上記の問題を解決するには、CommonsCollections、TemplatesImpl、Shiro のデフォルト キーを使用してペイロード: Client.java、CommonsCollectionsShiro.java を構築します。
- デフォルトでShiroに付属するcommons-beanutilsを使用して構築された逆シリアル化利用チェーン: CommonsBeanutils1Shiro.java
自社開発のデシリアライゼーション解析ツール:
- zkar: https://github.com/phith0n/zkar
- zkar を使用して SerialVersionUID の不一致の問題を修正する方法: https://t.zsxq.com/Yz3B6yJ