Тот самый первый баг, он же и самый известный.


Здравствуйте, дорогие хабровчане. Хочу поделиться с вами маленьким кейсом по программе bug bounty Яндекса. Как это обычно бывает, нашёл уязвимость в сервисах компании, написал письмо, дождался ответа, в котором мне сказали спасибо и заявили, что этот баг вовсе и не баг.


Раз такое дело, решил поделиться с читателями. Под катом опишу суть уязвимости и как я к ней пришёл, а также небольшой опрос в конце, призванный ответить на вопрос заголовка: является это багом или нет.


Важное примечание: я спросил разрешения у службы информационной безопасности Яндекса на описание этой потенциальной уязвимости, текст письма размещён в конце статьи.


Open Redirect — это тип уязвимости, при котором происходит перенаправление запроса на другой сайт. Основная опасность здесь, что невнимательные пользователи могут оставить таким образом свои, например, логин и пароль от какого-нибудь денежного ресурса или другие какие-либо ценные данные, которые может с пользой для себя использовать злоумышленник.


Ни для кого ни секрет, что у Яндекса есть программа bug bounty, за которую можно ещё и получить деньжат, если найти что-нибудь стоящее. Также в рамках этой программы существует т.н. “Зал славы” — страничка, на которой публикуют аккаунты тех пользователей, кому посчастливилось найти уязвимость или баг в сервисах Яндекса.



Казалось бы, все какие можно уязвимости уже найдены, наверное остались одни только самые сложные, для которых требуется большое количество времени, компетенций и знаний. Однако, не смотря на все эти очевидные, как мы знаем из художественных фильмов, препятствия, в зале славы каждый месяц появляется десяток-полтора новых лиц. Что-то тут не сходится, подумал я, и решил попробовать сам.


Спойлер: все эти предрассудки не имеют никакого отношения к реальности.



Как выяснилось, не нужно быть кулхацкером, чтобы найти уязвимость, достаточно уметь пользоваться интернет браузером и чуть-чуть понимать, как формируется строка запроса — это всё.


Итак, начну описание того, как нашёл в итоге эту уязвимость.


Изначально, не зная к чему можно было бы привязаться, я просто лазил по ресурсам Яндекса. Добавлял разные символы в запросы, к примеру: https://yandex.ru/pogoda/moscow?lat=55.755863&lon=+37.6177. Как видно, к параметру lon я добавил “+” и теперь эта ссылка ведёт на страницу “Bad Request”, хотя все другие символы игнорируются, а вот значок “+” имеет такой необычный эффект. Ясно, что с этим особо не разгуляешься, тут хвастать нечем. Ну не работает и не работает, никому же не мешает.



Так я ходил по разным ссылкам, пока не заметил одну примечательную на странице с регистрацией: https://passport.yandex.ru/auth?retpath=https%3A%2F%2Fya.ru. Заметив, что в этой ссылке есть параметр retpath, я знатно обрадовался и уже начал было потирать потные руки, ан не тут-то было.



Какие только запросы я не подставлял в этот retpath, ничего не проходило, кроме ссылок на сервисы Яндекса. Можно было бы подставить какую-нибудь статью в дзен и сказать, что, дескать так можно накручивать просмотры. Но, честно говоря, на какую-то серьёзную проблему это походило мало. Нужен был переход на какой-нибудь внешний ресурс.


Я знал одну фичу у Яндекс-переводчика — через него можно переводить сайты и он является по сути своей прокси-сервером.


Картинка с оригинальным ip адресом с whoer.net.



Картинка с ip адресом через переводчик.



Как видно, на них отличаются ip адреса.


Однако, переведённые сайты переходили на домен translated.turbopages.org, который retpath отбраковывавал, как внешний. Ничего с этим я поделать не мог. Счастье было так близко, казалось достаточно было протянуть руку, но как я ни старался, ничего не работало.


Отчаявшись, я было решил плюнуть на это безнадёжное дело и просто щёлкал и щёлкал на различные ссылки в переводчике. И тут мне просто повезло, т.к. Яндекс решил проверить, не робот ли я. Видать, в наше время с ChatGpt много их развелось.



Так вот, вместо очередного переведённого сайта наткнулся на капчу и, так как я знал на что смотреть, то сразу увидел, что капча то на домене Яндекса: https://translate.yandex.ru/showcaptcha?cc=.... Я, конечно, сразу решил попробовать добавить её в repath и… получилось! В сущности, получилось перейти из домена Яндекса во внешнюю сеть.


Та самая ссылка https://passport.yandex.ru/…,



Примечание: через какое-то время капча пропадает и можно сразу перейти на внешний сайт.


Видео, которое я отправил в Яндекс:



Письмо из Яндекса…

Благодарим за интерес, проявленный к безопасности сервисов Яндекса.
Проблема, о которой вы сообщили нам, не представляет опасности для пользователя.


Если вы считаете иначе, пожалуйста, опишите пример реальной атаки на важные пользовательские данные,
которую возможно совершить с использованием этой уязвимости.


Описанные вами шаги приводят только к редиректу на домен translated.turbopages.org.
А сама уязвимость Open Redirect не входит в скоуп программы.
Хотя должны признать, что описанный вами функционал довольно занимателен.


В связи с этим, к сожалению, мы не можем присудить за нее вознаграждение.


Спасибо за внимание!

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


  1. vtal007
    21.07.2023 06:20
    +2

    Интересно. Вот до чего доводит упорство :)


  1. vdudouyt
    21.07.2023 06:20
    +1

    Испытываю уважение перед Вашим упорством, однако не то, чтобы я не понимаю позицию Яндекса в данной ситуации. Наверняка репортов вроде "злоумышленник может опубликовать мошенническую статью на Zen и выманить финансовые данные пользователя" в день они получают достаточно много :)


  1. ifap
    21.07.2023 06:20
    +4

    Хм... это все про тот Яндекс, который светит в Интернет серверами с SSL 3 и незакрытой POODLE или про какой-то другой?