Совсем недавно, копаясь в коде PhpMyAdmin, я обнаружил уже давно в нем (судя по чейнджлогу) механизм капчи для авторизации.
И не что-нибудь, обошедшееся через многочисленные сервисы, а Google reCaptcha. Активировать его можно буквально за минуту - перейдите по ссылке www.google.com/recaptcha , мы получаем приватный и публичный ключи для нашего домена и вводим их в config.inc.php в ячейки «$cfg['CaptchaLoginPrivateKey']» и «$cfg['CaptchaLoginPublicKey']» соответственно.
Все, после этого на странице авторизации появится дополнительная проверка пользователя.
Почти отличная защита от автоматического подбора пароля.
«Почти» — потому что разработчики PMA ради удобства пользователей оставили в скрипте небольшой пробел.
Если человек проходит проверку reCaptcha в текущей сессии, то она ему больше не показывается.
То есть для реализации стандартного брутфорса злоумышленнику необходимо пройти ручную проверку, передать в брутфорс ID своей сессии и всё, брутфорс может работать спокойно.
Эту ошибку легко исправить.
В файле /libraries/plugins/auth/AuthenticationCookie.class.php нужно найти строки
// У нас уже есть одна правильная капча.и закомментируйте строку «$skip = true;».$пропустить = ложь; if ( isset($_SESSION['last_valid_captcha']) && $_SESSION['last_valid_captcha'] ) { $пропустить = правда; }
Теперь reCaptcha будет отображаться всегда.
И небольшой наглядный пример обхода на Питон+селен ( PasteBin ).
Это работает просто.
Если, открыв в своем коде страницу PMA, скрипт «видит» reCaptcha, то браузер создает на странице флажок «Готово к работе» и ждет, пока его отметит человек.
Прежде чем установить этот флажок, человек должен пройти проверку reCaptcha. Дальше поиск продолжается как обычно.
P.S. Разработчики PMA, конечно же, были проинформированы.
Теги: #phpmyadmin #recaptcha #информационная безопасность
-
Стохиометрия
19 Dec, 24 -
Простой Программист Снова Про Google Glass
19 Dec, 24 -
Советы По Visual Studio / Сара Форд
19 Dec, 24