
Эксплойт Proof-of-Concept (PoC) для CVE-2024-10924, уязвимости в плагине WordPress Really Simple SSL, позволяющей обойти двухфакторную аутентификацию (2FA). Включает методы смягчения последствий для защиты уязвимых сайтов WordPress.
📌 Обзор
Этот репозиторий содержит эксплойт Proof-of-Concept (PoC) для CVE-2024-10924, уязвимости в плагине WordPress Really Simple SSL, которая позволяет обойти двухфакторную аутентификацию (2FA). Злоумышленники могут использовать эту уязвимость для входа в систему под видом любого пользователя с действительным ID.
🚨 ПРЕДУПРЕЖДЕНИЕ: Этот эксплойт предназначен только для образовательных и исследовательских целей. Несанкционированное использование против систем, которые вам не принадлежат, незаконно.
🚀 Использование эксплойта
Предварительные требования:
Установка: Клонируйте репозиторий: | $ git clone https://github.com/h8sU/wordpress-cve-2024-10924-exploit.git $ cd wordpress-cve-2024-10924-exploit
Запуск эксплойта: $ python exploit.py <target_url> <user_id>
Пример: $ python exploit.py http://web.com 1
Это отправляет специально созданный запрос для обхода аутентификации 2FA для указанного user_id.
🛡️ Меры по смягчению и исправления
Как защитить ваш сайт WordPress:
Обновите плагин - Убедитесь, что "Really Simple SSL" обновлен до последней версии, где уязвимость исправлена.
Ограничьте доступ к REST API - Используйте плагины безопасности, такие как Wordfence, для ограничения несанкционированного доступа к API.
Корректно проверяйте nonce - Убедитесь, что nonce требуются и проверяются на стороне сервера перед выполнением критических действий.
Используйте надежные механизмы аутентификации - Внедрите дополнительные уровни безопасности, такие как брандмауэры веб-приложений (WAF).
Отслеживайте журналы доступа - Проверяйте свои журналы на предмет подозрительных запросов API к rest_route=/reallysimplessl/v1/two_fa/skip_onboarding.
Примените исправление кода - Убедитесь, что функция skip_onboarding правильно проверяет аутентификацию пользователя и проверку nonce. Следующий фрагмент кода демонстрирует рекомендуемое исправление:
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); }
При реализации этого исправления несанкционированные запросы будут отклонены с ответом 403 Forbidden.
⚠️ Отказ от ответственности
Этот проект предназначен исключительно для образовательных целей и исследований в области безопасности. Любая несанкционированная попытка эксплуатации живых систем без разрешения незаконна и может привести к серьезным юридическим последствиям. Используйте ответственно.