fastjson の脆弱性の利用手順について調査しましたが、ここでは fastjson の脆弱性の原理には触れていません。インターネット上で原理について説明しているものがいくつか見つかりましたが、基本的なものはあまりにも簡単すぎて誰も書いていないようです。自分自身も試行錯誤しながら学んでいます。
プロジェクトのアドレス#
GitHub - Lonely-night/fastjsonVul at 7f9d2d8ea1c27ae1f9c06076849ae76c25b6aff7
利用条件#
- fastjson バージョン: 1.2.76 <= fastjson < 1.2.83
- groovy の依存関係が存在する
再現手順#
- attack モジュールを attack-1.jar パッケージにコンパイルします。
- attack-1.jar パッケージがあるディレクトリで、HTTP サーバーを起動します。
python -m SimpleHTTPServer 8433
- PoC を実行します。
プロジェクトを再度開きます。プロジェクトのパス:
JDK のバージョンを 1.8 に切り替えます
poc.java ファイルを開きます。このファイルは脆弱性の検証に使用するペイロードです。
右クリックして実行します。
ペイロードが正常に実行されました。
記事はまだ未完成ですが、ご了承ください。
画像の出典:https://wallhaven.cc/