Эксперт в безопасности облаков и приложений Андрес Рианчо (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 с одинакомыми именами, в ответ возвращается ошибка.
baragoz
01.06.2018 в 09:23
Блээээт как же я ненавижу рекппчу. Выберите автобусы. Выберите знаки. Посмотрите еще картинки. СУка блядь для чего я полдня тыкаю в эти картинки, разве ради доступа в Форт Нокс?
Killswitch1982
01.06.2018 в 10:35
Ой да лааадно! Несколько раз потыркал и всё. Правда всё равно галочку «Я не робот» ставить нужно, но Гугл по ходу как-то запоминает пользователей и потом уже не делает мозг.
neoline
01.06.2018 в 15:42
ничего он не запоминает, стпрашивает по сто раз
neoline
01.06.2018 в 15:42
у разрабов фантазия ограничена, они дауны просто
neoline
01.06.2018 в 15:42
у разрабов фантазия ограничена, они дауны просто, епта
V5A
04.06.2018 в 12:27
Тестируется новая версия капчи, она смотрит по перемещению курсора
Vlад
04.06.2018 в 13:19
Солидарен с вами.
Меня также охватывает ненависть с таким,
смело можно сказать, недружественным интерфейсом;
и это для того чтобы переступать пороги вообщем рядовых помещений…
даже в банках такие истязания не предусмотрены;
по крайней мере, как-то, имея дело с банком, не заставили выбирать
на экране банки с вывеской СБЕР…, или с наклейкой «Соленые огурцы» 🙂
m2s2TNgqFNu4kvD5M
04.06.2018 в 13:43
вы что. у меня бывает даже так, что всё зацикленно. то есть, сколько бы раз я не выбирал автобусы и знаки, они идут, и идут. и так до бесконечности.