XSS refletido nas páginas de administração de plug-in do WordPress

O painel administrativo no WordPress é um lugar bastante seguro: apenas usuários elevados podem acessá-lo. Explorar o painel de administração de um plugin teria muito pouca utilidade aqui – um administrador já tem as permissões necessárias para realizar todas as ações que uma vulnerabilidade pode causar.

Embora isso geralmente seja verdade, há uma série de técnicas que os malfeitores estão usando para enganar um administrador para que ele execute ações inesperadas , como Cross Site Request Forgery (CSRF) ou ataques de clickjacking . Usando essas técnicas, um invasor pode explorar uma vulnerabilidade em nome de um administrador – potencialmente transformando uma questão menor em um grande problema de segurança.

Um invasor pode explorar essas vulnerabilidades fazendo com que um administrador visite um link – ou até mesmo visualize uma imagem – usando uma carga útil especificamente criada para o site de destino.

Nesta postagem, demonstraremos muitas vulnerabilidades que encontramos em uma fonte semelhante, todas levando a um XSS refletido nas páginas administrativas.

Aqui está uma lista de plug-ins vulneráveis ​​a este ataque:

As vulnerabilidades

Ações confidenciais em um site precisam ser protegidas usando uma ampla variedade de técnicas: verificações de permissão, nonces, segredos e muito mais. Lugares comumente esquecidos em termos de segurança são páginas que não acionam ações, como configurações de plug-ins ou páginas de visão geral.

O que descobrimos é que todos esses plug-ins tinham uma variedade do mesmo problema: eles confiam que a URL do navegador contém apenas informações válidas, enquanto não usam outros mecanismos para limpar ou validar os dados que contém. Como os dados não foram devidamente limpos, isso sempre levou a uma vulnerabilidade XSS refletida, em que o código malicioso pode ser executado em nome do usuário.

Como existem várias variantes da vulnerabilidade em cada um desses plug-ins, vamos ver o cenário típico: A página de configurações vulneráveis.

As páginas de configurações freqüentemente têm várias guias que dividem as informações por categoria. Para distinguir quais dessas guias estão sendo usadas no momento, esses plug-ins geralmente usam o argumento de solicitação de guia para renderizar condicionalmente diferentes seções da página.

Aqui está um exemplo vulnerável:

Amostra Vulnerável

Nesse cenário, usando $ activeTab como um valor, classe ou renderizando-o em qualquer lugar sem higienizá-lo, obtemos um XSS refletido usando o argumento tab.

Finalmente, para explorar este XSS, tudo o que precisamos fazer é enviar a um administrador um link para a página de configurações com nossa carga no argumento tab:

http://website.invalid.com/wp-admin/options-general.php?page=plugin-settings&tab="><script>alert(document.domain)</script>

Como o link é para o mesmo site, um administrador desavisado pode ficar tentado a clicar nele – uma ação que acionaria o exploit em sua própria conta.

Conclusão

Embora certas vulnerabilidades sejam definitivamente mais perigosas do que outras, todas as vulnerabilidades, independentemente de sua gravidade, podem ser usadas por invasores para danificar seu site.

Para reduzir o risco e evitar uma exploração, é fundamental que você mantenha todos os softwares do site e componentes de terceiros atualizados com os patches de segurança mais recentes. Também encorajamos os proprietários de sites a tirar vantagem dos serviços de monitoramento de integridade de arquivos que podem ajudá-lo a identificar indicadores de comprometimento.

Se você estiver tendo dificuldade para se manter informado sobre as atualizações, pode usar um firewall de aplicativo da web para corrigir virtualmente vulnerabilidades conhecidas até que você mesmo possa acessá-las.

Fonte: https://blog.sucuri.net/2020/09/reflected-xss-in-wordpress-plugin-admin-pages.html