Уязвимости в бизнес-логике, которые не распознает ни один сканер (интернет-сервисы)
Ранее мы уже рассказывали об уязвимостях в бизнес-логике приложений в сфере финтеха, ecom-а и ритейла. На этот раз мы собрали несколько забавных примеров логических уязвимостей в интернет-сервисах.
Такси
Приложения для такси бывают уязвимы для спекуляции с геолокацией. Водители меняют ее, чтобы получить более выгодные заказы. Например, он едет в Домодедово, но еще далеко от него. Приложение не показывает заказы из аэропорта. Поменяв локацию, водитель получает более выгодные заказы заранее.
Иногда приложение может быть уязвимо для получения информации о клиенте. Были случаи, когда водители находили номер клиента, звонили и предлагали отменить поездку — отвезти за наличные деньги и меньшую сумму.
Это может быть связано с тем, что клиентская база и биржа распределения заказов у сервиса глобальна, а логика предоставления данных о заказчике водителю — реализована на клиенте. Например, от бэкенда приходит JSON с полной информацией о пользователе, а приложение демонстрирует лишь определенную часть. Прослушивая трафик, можно получить расширенную информацию о пользователе.
Существуют прецеденты, наоборот, связанные с манипуляцией клиентов. Клиент не должен знать ничего, кроме номера машины и имени водителя, тем не менее, путем того же перехвата трафика и подмены данных, можно получить информацию о водителе на текущем заказе. В одном из проектов после нажатия кнопки «поиск» была возможность назначить сумму поездки самому. Это мелочь, но она позволяет избегать накруток сервисов в горячих зонах.
Подмена локации
Игра Pokеmon GO — еще один забавный пример. Охотники за эксклюзивными покемонами брали эмулятор андроида на компьютере, меняли локацию на Иран, где водились редкие покемоны и ловили их там :)
Или акция сотового оператора, который давал бонусы за шаги в своем приложении: чтобы заработать их, энтузиасты меняли локацию, строили плавную кривую, будто человек плавно перемещается, и сидя дома, участвовали в акции. Конечно, этим может воспользоваться далеко не каждый пользователь, и скорее всего, акция принесла гораздо больше прибыли компании, чем понесла потерь от находчивых пользователей.
Часто при тестировании API встречается уязвимость класса Broken Access Control. Она может быть связана с недостаточным контролем доступа к тому или иному интерфейсу API. Например, в одном из приложений был найден эндпоинт /api/v1/admin/notifications, который отдавал информацию обо всех событиях, в том числе о смене пароля. В событиях о смене пароля фигурировала ссылка на сброс. Таким образом, можно запросить смену пароля для администратора, обратиться к интерфейсу /api/v1/admin/notifications, получить ссылку на сброс пароля, установить новый пароль и войти в систему как администратор.
Post #44
809
- 👍 5