Recaptcha В Phpmyadmin – Активация, Обход И Исправление

Совсем недавно, копаясь в коде PhpMyAdmin, я обнаружил уже давно в нем (судя по чейнджлогу) механизм капчи для авторизации.

И не что-нибудь, обошедшееся через многочисленные сервисы, а Google reCaptcha. Активировать его можно буквально за минуту - перейдите по ссылке www.google.com/recaptcha , мы получаем приватный и публичный ключи для нашего домена и вводим их в config.inc.php в ячейки «$cfg['CaptchaLoginPrivateKey']» и «$cfg['CaptchaLoginPublicKey']» соответственно.

Все, после этого на странице авторизации появится дополнительная проверка пользователя.

Почти отличная защита от автоматического подбора пароля.

«Почти» — потому что разработчики PMA ради удобства пользователей оставили в скрипте небольшой пробел.

Если человек проходит проверку reCaptcha в текущей сессии, то она ему больше не показывается.

То есть для реализации стандартного брутфорса злоумышленнику необходимо пройти ручную проверку, передать в брутфорс ID своей сессии и всё, брутфорс может работать спокойно.

Эту ошибку легко исправить.

В файле /libraries/plugins/auth/AuthenticationCookie.class.php нужно найти строки

// У нас уже есть одна правильная капча.

$пропустить = ложь; if ( isset($_SESSION['last_valid_captcha']) && $_SESSION['last_valid_captcha'] ) { $пропустить = правда; }

и закомментируйте строку «$skip = true;».

Теперь reCaptcha будет отображаться всегда.

И небольшой наглядный пример обхода на Питон+селен ( PasteBin ).

Это работает просто.

Если, открыв в своем коде страницу PMA, скрипт «видит» reCaptcha, то браузер создает на странице флажок «Готово к работе» и ждет, пока его отметит человек.

Прежде чем установить этот флажок, человек должен пройти проверку reCaptcha. Дальше поиск продолжается как обычно.

P.S. Разработчики PMA, конечно же, были проинформированы.

Теги: #phpmyadmin #recaptcha #информационная безопасность

Вместе с данным постом часто просматривают: