Как я забронировал арендный дом всего за 1,00 INR

Taya

Продавец
Проверенный покупатель
Подтвержденный
Регистрация
09.09.15
Сообщения
3,269
Реакции
1,063
Депозит
0
Покупок
7
Продаж
8
Во время моей недавней охоты, я столкнулся с очень важной и все же простой уязвимостью. Это была манипуляция ценами платежей, через которые я мог заказать меблированный дом с одним из знаменитых приложений для аренды жилья в Индии по минимальной цене (рупий 1,00).

Итак, давайте посмотрим, какая была уязвимость.

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



В параметре суммы заказа была указана сумма, которая должна быть оплачена, что составляет «7291,0» INR. Сразу же я изменил значение на «1,0» INR.



После манипулирования величиной суммы заказа я перенаправил HTTP-запрос и перенаправил меня на страницу «Платежный шлюз» (Citrus Pay).



После нажатия кнопки «Pay Now» я захватил запрос и использовал метод проб и ошибок. Я изменил многие значения параметров от «False» до «True», но не повезло. После стольких неудачных попыток я получил правильный ответ. Я изменил «Счет повтора» от 0 (ноль) до «положительного значения».



Ура…. Он успешно переместил меня на следующую страницу.



Там он спросил меня о моих контактных данных и данных моей кредитной карты (я выбрал этот способ оплаты), чтобы заплатить сумму 1,00 INR. Я ввожу все свои данные и нажимаю Pay. Я получил OTP для оплаты 1,00. После ввода OTP он показал мне страницу успеха, показанную ниже.



BHOOM ... Я получил квитанцию о ренте на оплату 7291.0 на мой адрес электронной почты. И есть еще одна важная вещь. Я отменил дом, который я забронировал, и я получил возмещение 7291.0 INR вместо 1.0 INR, которое я действительно заплатил.

Здесь это манипуляция счетчиком повторных попыток, которая обходила логику проверки контрольной суммы платежей Citrus Pay. Поэтому никогда не игнорируйте какой-либо параметр, вы должны проверять все и все, что происходит с сервером от клиента.

Это простая, но критическая уязвимость, и это происходит, когда цена или контрольная сумма не подтверждается сервером.

Всегда проверяйте сумму, возвращаемую сервером.

Извлеките сумму из базы данных и проверьте, является ли она одинаковым значением или нет.

Создайте контрольную сумму платежа и подтвердите ее на стороне сервера.

Это все об этом интересном нахождении.
 
Сверху Снизу