Dando bypass nas restrições de upload do WordPress com arquivos Polyglots

Share

Neste artigo irei demonstrar como bypassar as restrições de upload do WordPress 5.3.1 usando arquivos polimórficos (Polyglots).

Como PoC, usaremos um arquivo polyglot DOCX + JAR disponível em: https://github.com/Polydet/polyglot-database/blob/master/files/DOCX%2BJAR.docx

Eu baixei o arquivo com o wget como abaixo:

Por se tratar de um arquivo Java e Microsoft Office, eu o executarei primeiro com Java, da seguinte maneira:

Seu conteúdo é um “Hello World” simples em Java.

Agora vamos abrir o polimórfico com o MS Word para analisar seu conteúdo:

Feito isso, vou criar uma cópia do polimórfico, salvando-o como um arquivo JAR para enviá-lo ao nosso WordPress 5.3.1.

Como esperado, o WordPress identifica o arquivo como sendo proibido pelas políticas de segurança e não permite o upload.

No entanto, ao fazer upload do arquivo .DOCX, o WordPress não valida seu conteúdo e permite o upload:

Nesse cenário, um invasor pode tirar proveito da falta de validação da restrição de upload de arquivos no WordPress 5.3.1 para hospedar arquivos DOCX maliciosos (por exemplo, camuflados em currículos). A vítima, ao receber por outros meios uma planilha contendo uma macro ou mesmo um script do PowerShell, executaria conteúdo DOCX malicioso.

Este é o arquivo hospedado no WordPress 5.3.1: https://sejalivre.org/poc/wp-content/uploads/2019/12/DOCXJAR.docx