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 を実行します。
プロジェクトを Idea で再度開きます。プロジェクトのパスは以下の通りです:
JDK のバージョンを 1.8 に切り替えます
poc.java ファイルを開きます。このファイルは脆弱性の検証に使用するペイロードです。
右クリックして実行します。
ペイロードが正常に実行されました。
記事は荒っぽいですが、ご了承ください。
画像の出典:https://wallhaven.cc/