Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
spring4shell-local-verification-lab — Spring Framework CVE-2022-22965 projeto de verificação de condições de impacto local, atualização de versão para correção e reteste | Kitploit
Ferramentas/GitHubGitHub/meng-security/spring4shell-local-verification-lab
Análise de VulnerabilidadesAnálise de CódigoExploraçãoSegurança WebAprendizado e EducaçãoLabs e Prática
GitHubmeng-security/spring4shell-local-verification-lab

spring4shell-local-verification-lab

Spring Framework CVE-2022-22965 projeto de verificação de condições de impacto local, atualização de versão para correção e reteste

Ver Repositório
8há 2 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Projeto de Verificação, Correção e Re-teste das Condições de Impacto Local do Spring4Shell

Introdução ao Projeto

Este projeto é utilizado para aprender e verificar o CVE-2022-22965 do Spring Framework, também conhecido como vulnerabilidade Spring4Shell, incluindo as condições de impacto, manifestação de risco, métodos de correção e o processo de re-teste pós-correção.

O projeto foi concluído em um ambiente de laboratório local autorizado e configurado individualmente. O foco do projeto não é atacar alvos reais, mas sim construir ambientes de teste Spring MVC antes e depois da correção, confirmar item por item as condições de impacto relacionadas à vulnerabilidade e usar um método somente leitura seguro e controlado para observar as diferenças nos caminhos de propriedade interna da vinculação de dados do Spring antes e depois da atualização de versão.

Este projeto concluiu os seguintes processos:

  • Preparação do ambiente JDK, Maven e Apache Tomcat
  • Construção do projeto WAR Spring MVC
  • Verificação da linha de base da funcionalidade normal
  • Confirmação das condições de impacto da vulnerabilidade
  • Diagnóstico somente leitura dos caminhos de propriedade interna
  • Análise da causa raiz da vulnerabilidade
  • Atualização da versão do Spring Framework
  • Re-teste de segurança pós-correção
  • Re-teste da funcionalidade normal pós-correção
  • Organização do relatório de teste e evidências de capturas de tela

Declaração de Segurança

Este projeto é utilizado exclusivamente em ambientes locais auto-construídos ou em ambientes de teste de segurança explicitamente autorizados.

O projeto não realiza varredura, detecção ou exploração de vulnerabilidades em sites públicos, servidores ou sistemas de terceiros, e não contém dados reais de usuários ou dados reais de negócios.

Durante o teste, as seguintes operações NÃO foram executadas:

  • Não foi escrito WebShell
  • Não foram executados comandos do sistema
  • Não foram modificadas configurações do Tomcat
  • Não foi estabelecido um shell reverso
  • Não foi realizado controle persistente
  • Nenhum impacto foi causado a sistemas externos

É proibido usar os métodos de teste deste projeto em qualquer alvo não autorizado.

Contexto da Vulnerabilidade

O CVE-2022-22965, geralmente chamado de Spring4Shell, é uma vulnerabilidade de execução remota de código no Spring Framework relacionada ao mecanismo de vinculação de dados de parâmetros de requisição.

O Spring MVC suporta a vinculação automática de parâmetros de requisição HTTP a propriedades de objetos Java. Por exemplo, este projeto recebe parâmetros de nome e e-mail da seguinte forma:

@ModelAttribute("profile") UserProfile profile

Normalmente, os parâmetros de requisição name e email são vinculados ao objeto UserProfile de acordo com o nome da propriedade.

Nas versões afetadas, as restrições de acesso a alguns caminhos de propriedade interna não são suficientemente rigorosas. Ao usar JDK 9 ou superior, e atender a condições específicas do contêiner Servlet, modo de implantação e vinculação de dados, os parâmetros de requisição externos podem percorrer além dos objetos de negócio comuns para acessar objetos internos relacionados a Class do Java, módulos, carregadores de classe ou contêiner.

Em ambientes específicos exploráveis, um atacante pode modificar ainda mais a configuração do servidor ou escrever arquivos no servidor, formando assim um risco de execução remota de código.

Este projeto não executa a exploração completa de execução remota, mas sim usa o seguinte caminho de propriedade para diagnóstico diferencial seguro e somente leitura:

class.module.name

Objetivos do Projeto

  1. Entender o processo básico de vinculação de dados de parâmetros de requisição do Spring MVC.
  2. Construir um projeto de teste Spring MVC WAR local.
  3. Concluir a verificação da linha de base da funcionalidade normal de negócios.
  4. Confirmar as condições de impacto, como Spring Framework, JDK, Tomcat, implantação WAR e entrada de vinculação de dados.
  5. Usar um método somente leitura para observar o desempenho de acesso aos caminhos de propriedade interna.
  6. Analisar as principais causas da vulnerabilidade.
  7. Atualizar o Spring Framework para a versão corrigida.
  8. Realizar o re-teste pós-correção usando o mesmo método.
  9. Confirmar que a atualização de versão não afetou a funcionalidade normal de negócios.
  10. Organizar o código-fonte do projeto, relatório de teste e evidências de capturas de tela.

Ambiente Experimental

Este projeto foi concluído em um ambiente de laboratório isolado VMware local.

  • Máquina host: Windows 11
  • Máquina alvo: Máquina virtual Windows 10
  • Software de virtualização: VMware Workstation
  • Ambiente Java: Eclipse Temurin JDK 11.0.31
  • Ferramenta de construção do projeto: Apache Maven 3.9.16
  • Contêiner Servlet: Apache Tomcat 9.0.60
  • Versão do Spring Framework antes da correção: 5.3.17
  • Versão do Spring Framework após a correção: 5.3.18
  • Framework Web: Spring MVC
  • Modo de implantação do projeto: Implantação tradicional de pacote WAR
  • Endereço de teste: 127.0.0.1

Dados de teste de funcionalidade normal:

  • Nome: Alice
  • E-mail: [email protected]

Caminho de propriedade para diagnóstico de segurança:

class.module.name

Estrutura do Projeto

spring4shell-local-verification-lab/

  • README.md: Introdução do projeto, abordagem de teste, resultados de verificação e instruções de correção
  • docs/: Relatório de verificação das condições de impacto local, correção e re-teste do Spring4Shell
  • images/: Capturas de tela do ambiente do projeto, processo de teste e re-teste
  • vulnerable-demo/: Projeto pré-correção usando Spring Framework 5.3.17
  • fixed-demo/: Projeto pós-correção usando Spring Framework 5.3.18
  • notes/: Anotações de estudo e registro do processo

Estrutura principal do código-fonte:

  • config/: Classes de configuração Spring MVC e classes de inicialização da aplicação
  • controller/: Controlador de processamento de formulários e diagnóstico de caminhos de propriedade
  • model/: Classe UserProfile para receber parâmetros de nome e e-mail
  • WEB-INF/views/: Páginas JSP de página inicial, resultado de envio e resultado de diagnóstico

Descrição do Projeto de Teste

Este projeto estabeleceu duas aplicações Spring MVC, uma antes e outra após a correção.

Projeto Pré-Correção

Diretório do projeto:

vulnerable-demo

Versão utilizada:

Spring Framework 5.3.17

Arquivo WAR gerado:

spring4shell-vulnerable-demo.war

Endereço de acesso:

http://127.0.0.1:8080/spring4shell-vulnerable-demo/

Página de diagnóstico:

http://127.0.0.1:8080/spring4shell-vulnerable-demo/binding-probe

Projeto Pós-Correção

Diretório do projeto:

fixed-demo

Versão utilizada:

Spring Framework 5.3.18

Arquivo WAR gerado:

spring4shell-fixed-demo.war

Endereço de acesso:

http://127.0.0.1:8080/spring4shell-fixed-demo/

Página de diagnóstico:

http://127.0.0.1:8080/spring4shell-fixed-demo/binding-probe

Descrição da Funcionalidade Normal

O projeto de teste fornece um formulário simples de perfil de usuário, contendo:

  • Campo de entrada de nome
  • Campo de entrada de e-mail
  • Botão de envio de perfil

O controlador recebe os parâmetros de requisição da seguinte forma:

@ModelAttribute("profile") UserProfile profile

Quando o usuário envia nome e e-mail, o Spring MVC vincula automaticamente os parâmetros name e email ao objeto UserProfile.

A página de resultado lê o objeto vinculado e exibe o nome e e-mail enviados pelo usuário.

Esta funcionalidade é usada para confirmar que o projeto pode ser executado normalmente e, ao mesmo tempo, prova que existe uma entrada efetiva de vinculação de dados de parâmetros de requisição Spring MVC na aplicação.

Abordagem de Teste

Baixar ferramenta