Исправлена уязвимость, позволявшая обмануть reCAPTCHA

Эксперт в безопасности облаков и приложений Андрес Рианчо (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 с одинакомыми именами, в ответ возвращается ошибка.

Мария Нефёдова: Блондинка, гик, книжный червь, синефил. Редактор ленты новостей; иногда автор Сцены.

Комментарии (8)

  • Блээээт как же я ненавижу рекппчу. Выберите автобусы. Выберите знаки. Посмотрите еще картинки. СУка блядь для чего я полдня тыкаю в эти картинки, разве ради доступа в Форт Нокс?

    • Ой да лааадно! Несколько раз потыркал и всё. Правда всё равно галочку "Я не робот" ставить нужно, но Гугл по ходу как-то запоминает пользователей и потом уже не делает мозг.

      • ничего он не запоминает, стпрашивает по сто раз

    • у разрабов фантазия ограничена, они дауны просто

    • у разрабов фантазия ограничена, они дауны просто, епта

    • Тестируется новая версия капчи, она смотрит по перемещению курсора

    • Солидарен с вами.
      Меня также охватывает ненависть с таким,
      смело можно сказать, недружественным интерфейсом;
      и это для того чтобы переступать пороги вообщем рядовых помещений...
      даже в банках такие истязания не предусмотрены;
      по крайней мере, как-то, имея дело с банком, не заставили выбирать
      на экране банки с вывеской СБЕР..., или с наклейкой "Соленые огурцы" :)

  • вы что. у меня бывает даже так, что всё зацикленно. то есть, сколько бы раз я не выбирал автобусы и знаки, они идут, и идут. и так до бесконечности.

Похожие материалы