
Una prova di concetto (PoC) per CVE-2024-10924, una vulnerabilità nel plugin Really Simple SSL per WordPress che permette di bypassare l'autenticazione a due fattori (2FA). Include tecniche di mitigazione per proteggere i siti WordPress interessati.
📌 Panoramica
Questo repository contiene un exploit Proof-of-Concept (PoC) per CVE-2024-10924, una vulnerabilità nel plugin WordPress Really Simple SSL che consente di bypassare l'autenticazione a due fattori (2FA). Gli attaccanti possono sfruttare questa falla per accedere come qualsiasi utente con un ID valido.
🚨 ATTENZIONE: Questo exploit è solo a scopo educativo e di ricerca. L'uso non autorizzato contro sistemi che non possiedi è illegale.
🚀 Utilizzo dell'Exploit
Prerequisiti:
Installazione: Clona il repository: | $ git clone https://github.com/h8sU/wordpress-cve-2024-10924-exploit.git $ cd wordpress-cve-2024-10924-exploit
Esegui l'Exploit: $ python exploit.py <target_url> <user_id>
Esempio: $ python exploit.py http://web.com 1
Questo invia una richiesta manipolata per bypassare l'autenticazione 2FA per l'user_id specificato.
🛡️ Mitigazione e Correzioni
Come proteggere il tuo sito WordPress:
Aggiorna il Plugin - Assicurati che "Really Simple SSL" sia aggiornato all'ultima versione in cui la vulnerabilità è corretta.
Limita l'Accesso all'API REST - Utilizza plugin di sicurezza come Wordfence per limitare l'accesso API non autorizzato.
Convalida Correttamente i Nonce - Assicurati che i nonce siano richiesti e convalidati lato server prima di eseguire azioni critiche.
Utilizza Meccanismi di Autenticazione Forti - Implementa ulteriori livelli di sicurezza come i Firewall per Applicazioni Web (WAF).
Monitora i Log di Accesso - Controlla i tuoi log per richieste API sospette a rest_route=/reallysimplessl/v1/two_fa/skip_onboarding.
Applica la Correzione del Codice - Assicurati che la funzione skip_onboarding controlli correttamente l'autenticazione dell'utente e la convalida del nonce. Il seguente frammento di codice mostra una correzione consigliata:
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); }
Implementando questa correzione, le richieste non autorizzate verranno negate con una risposta 403 Forbidden.
⚠️ Dichiarazione di non responsabilità
Questo progetto è destinato esclusivamente a scopi educativi e di ricerca sulla sicurezza. Qualsiasi tentativo non autorizzato di sfruttare sistemi live senza permesso è illegale e potrebbe comportare gravi conseguenze legali. Usa in modo responsabile.