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