
Um exploit de Prova de Conceito (PoC) para CVE-2024-10924, uma vulnerabilidade no plugin Really Simple SSL para WordPress que permite contornar a autenticação de dois fatores (2FA). Inclui técnicas de mitigação para proteger sites WordPress afetados.
📌 Visão Geral
Este repositório contém uma prova de conceito (PoC) do exploit para CVE-2024-10924, uma vulnerabilidade no plugin WordPress Really Simple SSL que permite contornar a autenticação de dois fatores (2FA). Atacantes podem explorar esta falha para fazer login como qualquer usuário com um ID válido.
🚨 AVISO: Este exploit é apenas para fins educacionais e de pesquisa. O uso não autorizado contra sistemas que você não possui é ilegal.
🚀 Uso do Exploit
Pré-requisitos:
Instalação: Clone o repositório: | $ git clone https://github.com/h8sU/wordpress-cve-2024-10924-exploit.git $ cd wordpress-cve-2024-10924-exploit
Execute o Exploit: $ python exploit.py <target_url> <user_id>
Exemplo: $ python exploit.py http://web.com 1
Isso envia uma requisição forjada para contornar a autenticação 2FA para o user_id especificado.
🛡️ Mitigação e Correções
Como Proteger seu Site WordPress:
Atualize o Plugin - Certifique-se de que o "Really Simple SSL" está atualizado para a versão mais recente onde a vulnerabilidade foi corrigida.
Restrinja o Acesso à API REST - Use plugins de segurança como Wordfence para limitar o acesso não autorizado à API.
Valide Nonces Corretamente - Certifique-se de que os nonces são exigidos e validados no lado do servidor antes de executar ações críticas.
Use Mecanismos de Autenticação Fortes - Implemente camadas de segurança adicionais como Firewalls de Aplicação Web (WAF).
Monitore os Logs de Acesso - Verifique seus logs em busca de requisições de API suspeitas para rest_route=/reallysimplessl/v1/two_fa/skip_onboarding.
Aplique a Correção de Código - Certifique-se de que a função skip_onboarding verifica adequadamente a autenticação do usuário e a validação de nonce. O seguinte trecho de código demonstra uma correção recomendada:
try { $this->check_login_and_get_user($parameters->user_id, $parameters->login_nonce); } catch (Exception $e) { return new WP_REST_Response(['error' => $e->getMessage()], 403); }
Ao implementar esta correção, requisições não autorizadas serão negadas com uma resposta 403 Forbidden.
⚠️ Aviso Legal
Este projeto destina-se apenas a fins educacionais e de pesquisa de segurança. Qualquer tentativa não autorizada de explorar sistemas ativos sem permissão é ilegal e pode levar a consequências legais severas. Use com responsabilidade.