Но я оставляю эту запись как есть, для истории. В комментариях уже отметились представители Яндекса: говорят, что уязвимость закрыта, ведётся аудит безопасности софта. И, пользуясь случаем, хочу напомнить, что у нас в Badoo уже несколько лет идет программа . Все вокруг постоянно рассуждают о коррупции. А я хочу рассказать Вам о случае, на коррупцию очень похожем, но в среде чистого IT- бизнеса, на государство никак не завязанного.
Описываемый далее случай интересен именно с точки зрения взлома бизнеса, хотя статья больше посвящена взлому в смысле IT. Начну с нетехнической части. Мой друг- одноклассник работает в сфере бизнеса московского такси. Работает в этом бизнесе довольно много лет.
Несколько лет назад, когда на рынок московского такси вошел крупный игрок (а теперь — монополист) — Яндекс, то мой друг, разумеется (как и все прочие мелкие и крупные игроки этого бизнеса) также присоединился к заказам Яндекс- Такси. Уже несколько лет он работает в Яндекс. Такси с использованием ПО ООО РОСИНФОТЕХ. Где- то с полгода назад Яндекс приобрел эту компанию и теперь это ПО называется Яндекс. Таксометр или вроде того.
Что представляет собой это ПО: это комплект по управлению водителями (можно добавить/удалить машину/водителя), а так же принять/отменить проследить заказ. Так вот, обещал я, что начну с нетехнической части. Этот мой друг уже несколько лет жалуется мне при личных встречах на извечную русскую проблему: «воруют». Рассказывает что воруют водителей, заказы и даже, по слухам, деньги с QIWI- кошельков.
Ну, жалуется человек на жизнь. Ушел водитель (увели) от него в другую компанию, а он считает что его украли — обычная история. Но на этих выходных таки он меня упросил: «Иван, ну да, ты (как ты говоришь) не специалист по безопасности, но посмотри, как могут у меня воровать водителей? Ты же IT- шник, в конце концов!». Мы сели с ним в кафешке с Wi. Fi и стали смотреть.
Закончу нетехническую вводную я тем, что скажу что, по слухам, среди компаний, работающих с Яндекс- Такси, которые идут в том числе и от самого Росинфотех, Яндекс приобрел вышеуказанное ПО за миллиард. Запомните эту цифру, она понадобится нам в конце статьи.
Итак, вступление окончилось, перейдем к технической части. Дал он мне логин/пароль от его личного кабинета в диспетчерской, и я туда зашел. Там все несложно: список водителей: добавить/удалить/заблокировать/распечатать. Отчеты, заказы и т.
Полазив чуток по страничкам, обратил внимание, что практически весь сайт построен на том, что в ссылках или запросах фигурируют UUID. Кликнув на водителя, можно увидеть, что UUID водителя фигурирует в ссылке информации о нем. Далее стало интересно выяснить три вопроса: можно ли узнать UUID водителя чужой компанииможно ли, зная этот UUID, получить информацию о чужом водителе (собственно то, на что жаловался мой друг)можно ли получить доступ к заказам водителей других компаний.
Походив по страничкам личного кабинета, я обратил внимание, что UUID присвоен и компаниям тоже.«Ага!»- подумал я и стал спрашивать моего друга, знает ли он, что такое UUID, и применял ли где- нибудь его. Он говорит: «Да, в личном кабинете Яндекса я указывал урл на API». Дает он мне нечто вроде такого sync.
UUID>. Заглядываем в этот урл и видим — все водители компании моего друга в удобном для парсинга виде — XML. Без авторизации. Осталось узнать UUID других компаний.
Как это сделать? Как я уже сказал выше, в некоторых местах сайта банальный Ctrl- U в браузере показывает UUID других компаний, однако мне стало интересно получить UUID адреса ВСЕХ компаний, использующих это ПО. Мы где- то с полчасика покопались по урлам, используя Ctrl- U, и нашли сразу множество путей, как это сделать. Например, вот такой красивый JSON сообщает нам подобный список: Обратите внимание, что список затрагивает сразу все регионы страны, не только Москву. Ну или подобные списки встречаются в различных селектах, списках итп. Таких мест множество. Однако, продолжим далее.
Стало интересно вернуться к карточкам водителей и рассмотреть их поближе. Для этого мы выбрали одну из Московских компаний — взяли XML со всеми ее водителями (которая, как описано выше, доступна без авторизации) и продолжили эксперименты над ней. Взяли пару водителей из этого XML, ввели их UUID в карточке в личном кабинете. Посмотрели карточку водителя. Рейтинги, когда сдавал экзамены такси, номера прав итп — все видно. Информация о любом водителе (в том числе чужих) доступна по урлу с UUID.
Это как бы расширенная информация (больше, чем вышеприведенном XML). Синие И Красные Модели Игроков Для Css. Вероятно, разработчики этого ПО о понятиях «авторизация», «аутентификация» не слышали, а уж и тем паче о разнице между ними. Там же, сидя в кафе я набросал скриптик на Python, и через 2.
Яндекс. Такси во всех городах (не только в Москве) с их телефонами, рейтингами, номерами прав, лицензий, балансами счета и прочей приватной информацией. Получили вот примерно такой XLS файлик: Так я получил вещественное доказательство более чем двухлетним подозрениям моего друга о воровстве водителей. Дальше стало интересно посмотреть несколько шире на эту проблему: доступность этих UUID без авторизации вообще. Оказалось, и это есть! Это ПО предлагает довольно широкий спектр сопутствующих услуг. Например, вебформу заказа такси на сайте компании- клиента. Заглянув (Ctrl- U) на несколько сайтов- партнеров Яндекс- такси, как Вы думаете, что я там обнаружил?
UUID этих компаний, по которым (напомню) можно бесплатно доставать всех водителей. Таким образом, не исключаю, что какой- либо поисковик (в т. Яндекса) однажды проиндексирует все эти приватные данные компаний и людей.
Затем мы заглянули на еще один ресурс без авторизации этой компании. В публичном доступе находится в реальном времени лог всех заказов в Яндекс- такси. Можно посмотреть, кому назначен, что с ним происходит, кто выполняет, адрес подачи итп. Нажимая Ctrl- U на этой странице, мы видим ID заказа, компанию которой он назначен. Вот мы и докопались до ID заказов других компаний на неавторизованной странице (на авторизованных они тоже есть, но повторюсь: было интересно найти на неавторизованной). Далее, используя инструменты, доступные в разных частях личного кабинета, мы можем не просто наблюдать, но и воздействовать на процесс: например, можно чужой компании изобразить отмену заказа, а самому послать машину вместо нее!
Для водителя это будет выглядеть, как отмена заказа. Для клиента — как «приехала другая машина». Выкройка Зайца Тильда тут. Это просто клондайк какой- то для человека, настроенного на нечестные способы ведения бизнеса! Отсюда и статья : )Самое интересное, что это не просто какая- то одна дырка, а все ПО целиком такое, весь сервис построен на том, что НИКАКОЙ защиты информации нет. Продукт представляет собой просто этакий просмотрщик записей в БД без какой- либо защиты между пользователями.
Представьте, залогинившись в гугл Вы бы могли посмотреть всю почту ВСЕХ пользователей Гугл. Вот тут примерно такой случай. Однако продолжим. Комплекс содержит еще приложение для андроида. Взяв приложение «Таксометр» с андроид маркета мы быстро выяснили, что оно делает запросы по неавторизованным урлам.
И первый неавторизованный http- запрос, который делает это приложение, — угадайте, какой? Правильно, полный список пар UUID- название компаний!