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

  1. baragoz

    01.06.2018 at 09:23

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

    • Killswitch1982

      01.06.2018 at 10:35

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

    • neoline

      01.06.2018 at 15:42

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

    • neoline

      01.06.2018 at 15:42

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

    • V5A

      04.06.2018 at 12:27

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

    • Vlад

      04.06.2018 at 13:19

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

  2. m2s2TNgqFNu4kvD5M

    04.06.2018 at 13:43

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

Оставить мнение