Я нашел способ отследить всех водителей «Ситимобила»
В субботу вечером я, как всегда, сидел и снифил трафик со своего телефона. Внезапно, открыв приложение «Ситимобила», я увидел, что запрос на получение информации о ближайших машинах выполняется без какой-либо аутентификации.
Выполнив этот запрос несколько раз с разными параметрами, я понял, что можно выгружать данные о таксистах практически в реалтайме. Вы только представьте, сколько интересного можно теперь узнать!
С чего все началось?
Да, я действительно сидел и смотрел трафик с телефона. Дело в том, что я инженер и постоянно изучаю, как работают технологии и разные вещи вокруг меня. Так было и в этот раз.
Я нашел уязвимость и написал в Mail.ru Group. Буквально через 3 минуты мне ответили, что эти данные открытые и их не нужно защищать.
Ну раз так, давайте развлекаться!
Анализируем «Ситимобил»
Я написал алгоритм, который за пару десятков секунд собирает информацию о всех таксистах «Ситимобил», которые сейчас на линии в Москве и Московской области. Вот как он работает:
О технических деталях я подробнее говорю в статье на «Хабре», а пока давайте сосредоточимся на результатах.
Думаете, сколько водителей на линии в воскресенье утром?
Но разве нас интересует срез? Давайте посмотрим в динамике.
Найс. А как эти водители распределены в пространстве?
Ну и напоследок давайте проследим за каким-нибудь водителем.
Вот, видно маршрут. А ведь можно еще поднять частоту опроса и получить более точные данные.
И что такого?
А то, что данные вроде как важные.
Во-первых, можно оценить долю рынка и доходность компании «Ситимобил».
Во-вторых, на месте другого агрегатора (например, «Яндекс.Такси») я бы использовал данные о положении таксистов конкурентов. Для ценообразования, например. Или вычислил водителей, работающих и там и там, на основе корреляций в геопозициях.
В-третьих, раз можно отследить конкретного таксиста, можно отследить и его клиента. Это уже серьёзно. По факту можно узнать, куда уехал человек на «Ситимобиле», если вы знаете, где он сел в такси.
Заключение
Не нужно недооценивать важность данных, которые показываются клиенту.
Если Mail.ru Group все еще считает, что эту информацию не нужно защищать, то «Яндекс.Такси», вот вам гора данных. С её помощью вы сможете забрать часть прибыли «Ситимобила».
Если же Mail.ru Group признаёт, что данные чувствительные, и закрывает к ним доступ, то будет честно выплатить вознаграждение по bug bounty.
Как, думаете, ещё можно использовать данные о таксистах?
Спасибо, что дочитали! Надеюсь, вам было интересно.
Успехов!
Данные в паблике, отлично! Это же можно применить в мирных целях, есть идея для приложения "Усталый водитель". Берем водителей и чекаем их по интервалу, считаем время от момента, когда водитель вышел на линию и до до тех пор, пока перестанет откликаться большой промежуток времени(отдых). Ставим каждому шкалу от зеленого (только вышел) к красному (более 12 часов на линии) с пиктограммками от "выспавшийся гепард" до "неспящий зомби". Далее человек ловит такси, запускает приложение, и по позиции вычисляются и показываются сорта водителей вокруг))
Выспавшийся гепард может быть не таким свежим после пары смен в убере/яндексе
Это да, тут могу только уповать на жадность водителей, которые держат все виды агрегаторов онлайн. В таком случае приложение будет работать, даже если клиент вызывает убер/яндекс, тогда еще раз говорим спасибо ситимобилу за общую базу)