- Регистрация
- 04.11.2010
- Сообщения
- 2 382
- Благодарностей
- 916
- Баллы
- 113
Эксперт в безопасности облаков и приложений Андрес Рианчо (Andres Riancho) обнаружил способ обхода защитного механизма reCAPTCHA, основанного на тесте Тьюринга. Нужно направить небезопасным образом специальный запрос к /recaptcha/api/siteverify.
Исследователь объясняет, что Google предлагает на выбор пользователя ряд картинок и использует JavaScript для их отображения в браузере. Когда пользователь закончил задание и, например, нашел на предложенных изображениях все автомобили, он подтверждает свой выбор, что провоцирует отправку HTTP-запроса веб-приложению, которое верифицирует выбор пользователя, обращаясь к reCAPTCHA API.
Приложение аутентифицирует себя с помощью секретного параметра и reCAPTCHA-generated-hash. Если пользователь решил задание корректно, API подтверждает, что все в порядке, приложение обрабатывает полученный ответ и допускает пользователя к ресурсу, которое защищает.
Рианчо обнаружил, что если применить здесь технику HTTP parameter pollution, то веб-приложение может быть использовано для обмана reCAPTCHA.
— рассказывает исследователь.«HTTP parameter pollution практически всюду: на стороне клиента и сервера, и связанные с этим риски сильно зависят от контекста. В некоторых отдельных случаях это может привести к огромным брешам в безопасности, но в большинстве случаев такая находка чревата низкими рисками»
Специалист отмечает, что возможно направить два HTTP-запроса сервису Google и получить одинаковый ответ. reCAPTCHA API всегда будет использовать первый секретный параметр в запросе, но проигнорирует второй, что и эксплуатировал Рианчо.
— пишет Рианчо.«Если веб-приложение уязвимо перед HTTP parameter pollution и URL сконструирован таким образом, что ответный параметр идет перед секретным, тогда атакующий может обойти верификацию reCAPTCHA»
Специалисты Google уже исправили проблему без всяких патчей. Исследователь, заработавший на обнаружении этого бага 500 долларов США, объясняет, что разработчики поработали с REST API, и теперь если запрос к /recaptcha/api/siteverify содержит два параметра HTTP с одинакомыми именами, в ответ возвращается ошибка.
Источник: xakep.ru