
Java RMIのデシリアライゼーション脆弱性のPOC
Java RMI デシリアライゼーション脆弱性の PoC
この POC を実行するには、JDK 8 を使用する必要があるでしょう。
クライアント側とサーバー側の両方の Message クラスに注目してください。それらは異なります。その違いがこの脆弱性を理解する鍵です。
Oracle が公開した修正は、開発者に Java セキュリティポリシーでデシリアライゼーションのホワイト/ブラックリストを設定させるというものです。言わせてもらえば、ハッキングされるまでそのリストの存在を知っている開発者がどれだけいるでしょうか?
テストプログラムを書こうと思いましたが、怠け者なので… もし私のコードを理解できれば、簡単に自分で書けるでしょう。java instrument またはリフレクションを使用することをお勧めします。
そして、ターゲットのクラスパスに特定のクラスが存在すれば、リモートコード実行が可能です:
http://www.freebuf.com/vuls/126499.html
このプログラムは教育およびテスト目的専用です。許可なく使用しないでください。悪意のある目的で使用しないでください。通常の免責事項が適用されます。特に、これらのプログラムが提供する情報や機能を直接的または間接的に使用したことによって生じた損害について、私は一切責任を負いません。作者またはインターネットプロバイダーは、これらのプログラムまたはその派生物の内容や誤用について一切の責任を負いません。このプログラムを使用することにより、これらのプログラムの使用によって生じたデータ損失、システムクラッシュ、システム侵害などの損害は私の責任ではないことを了承したものとみなします。