
Trabalho do CodePath para as Semanas 7 e 8: CVE-2017-14719, CVE-2019-9787 e Modificação Não Autenticada de Conteúdo de Página/Post via REST API
Trabalho do CodePath para as Semanas 7 e 8: CVE-2017-14719, CVE-2019-9787 e Modificação Não Autenticada de Conteúdo de Página/Post via REST API
Tempo gasto: 16 horas no total
Objetivo: Encontrar, analisar, recriar e documentar vulnerabilidades que afetam uma versão antiga do WordPress
- [ ] Passos para recriar: Se um atacante conseguir obter acesso a uma conta de Administrador, ele pode clicar no botão 'Plugins' e visualizar os plugins instalados. Ao lado de cada plugin listado há um botão 'Excluir' que, quando pressionado, leva o atacante a uma página onde o Administrador pode visualizar o conteúdo do diretório que está tentando excluir antes de fazer uma alteração permanente. Desta página, o atacante pode deletar o nome do plugin da URL (localizado diretamente após checked[0]= e antes do '&'). O atacante substitui o nome do plugin por um ou mais caracteres ' ../ ' até atingir o diretório específico que deseja excluir.
- [ ] Código-fonte afetado:
- https://core.trac.wordpress.org/browser/tags/3.8/src/wp-admin/plugins.php
#######################################################################################
########################################################################################
Usei código de exploit em python desta url: https://www.exploit-db.com/exploits/41223
Enquanto trabalhava na 'Modificação Não Autenticada de Conteúdo de Página/Post via REST API' encontrei um erro de importação no arquivo python por não ter o pacote lxml instalado.
Após instalar o lxml, tentei executar 'python [exploit_file_name].py http://wpdistillery.vm' novamente. Foi aí que encontrei meu segundo problema: recebi um UnicodeEncodeError. Resolvi esse problema excluindo posts estranhos que continham o ordinal que não estava no intervalo.

Criei um novo post com conteúdo de texto simples e executei o script novamente. Ele foi executado com sucesso, descobrindo os endpoints da API e obtendo o id, título e link do post disponível.
Direitos Autorais [aaaa] [nome do detentor dos direitos autorais]
Licenciado sob a Licença Apache, Versão 2.0 (a "Licença");
você não pode usar este arquivo exceto em conformidade com a Licença.
Você pode obter uma cópia da Licença em
http://www.apache.org/licenses/LICENSE-2.0
A menos que exigido pela lei aplicável ou acordado por escrito, o software
distribuído sob a Licença é distribuído "NO ESTADO EM QUE SE ENCONTRA" (AS IS),
SEM GARANTIAS OU CONDIÇÕES DE QUALQUER TIPO, expressas ou implícitas.
Consulte a Licença para obter permissões específicas e
limitações sob a Licença.