На страницах своего блога независимый индийский исследователь Ананд Пракаш (Anand Prakash) рассказал об интересном баге в приложении Uber. Проблема позволяла пользоваться услугами сервиса абсолютно бесплатно и, по словам исследователя, работала как в США, так и в Индии.
Пракаш объясняет, что все начинается сразу после загрузки приложения, когда пользователь должен выбрать способ оплаты, привязав к аккаунту банковскую карту или выбрав оплату наличными. Пракаш обнаружил, что можно создать аккаунт и установить для него некорректный способ оплаты, после чего все поездки станут бесплатными.
Эксплоит, использованный Пракашем, можно увидеть ниже. Всё дело в подмене ID способа оплаты (payment_method_id) в запросе на случайное сочетание символов, в данном случае – «xyz».
POST /api/dial/v2/requests HTTP/1.1
Host: dial.uber.com
{"start_latitude":12.925151699999999,"start_longitude":77.6657536,
"product_id":"db6779d6-d8da-479f-8ac7-8068f4dade6f","payment_method_id":"xyz"}
Также исследователь продемонстрировал proof-of-concept атаки на видео.
Пракаш сообщил о проблеме разработчикам Uber, воспользовавшись bug bounty программой компании на HackerOne. В настоящий момент проблема уже устранена. По информации издания TechCrunch, уязвимость принесла исследователю вознаграждение в размере $5000.