XML Decoder Exploit

XML Decoder

XML Decoder é uma classe Java usada para ler documentos XML que foram criados com XML Encode. 

A vulnerabilidade ocorre quando a deserialização implementada na classe XML Decode é executada sem validar os dados inseridos pelo usuário da aplicação. 

A classe XML Decoder pode usar diversos métodos para construir um objeto e quando não há validação dos dados, é possível fazer a execução de comandos e também estabelecer uma conexão com o servidor da aplicação vulnerável. 

PoC - Prova de Conceito

Ao fazer o upload de um arquivo na aplicação, identificamos o uso da classe XML Decode na resposta. 

Identificado o uso da classe XML Decoder


Para validar a vulnerabilidade, usamos a classe Runtime e o método exec para iniciar em modo listening a ferramenta Netcat na porta 9292. Em seguida, consigo acessar o servidor vulnerável ao conectar na porta em modo "de escuta". 

O comando representado pelo payload abaixo é: 

nc -l -p 9292 -e /bin/sh

Payload para executar a ferramenta Netcat e habilitar a porta 9292 em modo listening. 


Na exploração dessa vulnerabilidade, a conexão estabelecida é do tipo Bind. Nesse tipo de conexão, o servidor-alvo fica em "listening" e o atacante estabelece a conexão. 

    Conexão iniciada a partir da máquina Kali com o servidor-alvo. 

Comando para visualizar o UUID 

blkid


Em um cenário onde não é possível estabelecer a shell com o servidor-alvo, é possível apenas executar comandos remotamente usando o método exec da classe Runtime. 

Disponibilizei os payload no Github HackingBR



[+] Referências:




Comentários

Postagens mais visitadas