Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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
cve-2022-31692 — A project demonstrating an app that is vulnerable to Spring Security authorization bypass CVE-2022-31692 | Kitploit
Ferramentas/GitHubGitHub/blipzip/cve-2022-31692
Authentication & AuthorizationVulnerability AnalysisWeb Application ExploitationPenetration TestingLearning & Education
GitHubblipzip/cve-2022-31692

cve-2022-31692

A project demonstrating an app that is vulnerable to Spring Security authorization bypass CVE-2022-31692

Ver Repositório
356há 3 anosRevisado pelo Kitploit

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

CVE-2022-31692 Demo

Visão Geral

Uma aplicação Spring Boot simples demonstrando uma configuração vulnerável ao CVE-2022-31692.

Essa vulnerabilidade pode atrair atenção devido à sua gravidade - possui uma pontuação base CVSS 3.x de 9.8, pois permite bypass de autenticação. O propósito deste projeto é demonstrar as condições descritas no aviso, que levam à aplicabilidade da vulnerabilidade.

  • A aplicação espera que o Spring Security aplique segurança aos tipos de dispatcher forward e include.
  • A aplicação usa o AuthorizationFilter manualmente ou através do método authorizeHttpRequests().
  • A aplicação configura o FilterChainProxy para se aplicar a requisições forward e/ou include (ex: spring.security.filter.dispatcher-types = request, error, async, forward, include).
  • A aplicação pode encaminhar ou incluir a requisição a um endpoint protegido por privilégios mais altos.
  • A aplicação configura o Spring Security para se aplicar a todos os tipos de dispatcher via authorizeHttpRequests().shouldFilterAllDispatcherTypes(true)

Para referência, tenho certeza de que este é o commit que corrige a vulnerabilidade.

Demonstração

A aplicação possui três URLs:

  1. / A página inicial
  2. /admin Uma página de administração, que exige que o usuário forneça autenticação Basic (credenciais "user"/"pass") e tenha a função ROLE_ADMIN atribuída
  3. /forward Um encaminhamento (forward) do lado do servidor para a página de administração

Os controles de acesso são especificados via authorizeHttpRequests() na classe SecurityConfig.

root@kitploit:~
.authorizeHttpRequests((authz) -> authz
	.antMatchers("/").permitAll()
	.antMatchers("/forward").permitAll()
	.antMatchers("/admin").hasAuthority("ROLE_ADMIN")
	.shouldFilterAllDispatcherTypes(true)
)

Comportamentos esperados

  1. O usuário acessa / e não está autenticado (graças a permitAll())

  2. O usuário acessa /admin. Ele não fornece autenticação, e a requisição é rejeitada (401 Não autorizado).

  3. O usuário acessa /admin. Ele fornece autenticação válida, mas a requisição ainda é rejeitada (403 Não autorizado) porque não possui a função necessária .hasAuthority("ROLE_ADMIN").

  4. O usuário acessa /forward. Suas requisições passam pela cadeia de filtros de segurança para GET /forward, que é aprovada como válida (graças a permitAll()). O controlador processa a requisição e retorna forward:/admin para o Dispatcher. Conforme instruído pelas configurações spring.security.filter.dispatcher-types e .shouldFilterAllDispatcherTypes(true), isso é um tipo FORWARD, portanto deve passar novamente pela cadeia de filtros. Esta segunda passagem pelo filtro resulta na rejeição da requisição (novamente, graças a hasAuthority("ROLE_ADMIN")).

Comportamento real

O usuário acessa /forward, a requisição passa pela cadeia de filtros uma vez e é aprovada como válida. O forward é processado, mas ao invés de passar novamente pela cadeia, é apenas aceito como válido, e a página de administração é retornada.

Baixar ferramenta