- Регистрация
- 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. Поэтому никогда не игнорируйте какой-либо параметр, вы должны проверять все и все, что происходит с сервером от клиента.
Это простая, но критическая уязвимость, и это происходит, когда цена или контрольная сумма не подтверждается сервером.
Всегда проверяйте сумму, возвращаемую сервером.
Извлеките сумму из базы данных и проверьте, является ли она одинаковым значением или нет.
Создайте контрольную сумму платежа и подтвердите ее на стороне сервера.
Это все об этом интересном нахождении.
Итак, давайте посмотрим, какая была уязвимость.
Мне пришлось переехать в служебную квартиру из платного гостевого дома. Поэтому я пошел в интернет и искал квартиру для совместного проживания на сайте аренде жилья. Мне понравился дом и думал заплатить аванс. Я отчаянно искал уязвимости в платежном шлюзе за последние несколько недель, поэтому я подумал о том, чтобы попробовать этот сайт. Я захватил запрос с помощью прокси-инструмента, прежде чем он попал в Платежный шлюз.
В параметре суммы заказа была указана сумма, которая должна быть оплачена, что составляет «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. Поэтому никогда не игнорируйте какой-либо параметр, вы должны проверять все и все, что происходит с сервером от клиента.
Это простая, но критическая уязвимость, и это происходит, когда цена или контрольная сумма не подтверждается сервером.
Всегда проверяйте сумму, возвращаемую сервером.
Извлеките сумму из базы данных и проверьте, является ли она одинаковым значением или нет.
Создайте контрольную сумму платежа и подтвердите ее на стороне сервера.
Это все об этом интересном нахождении.