🔍 Разбор задачи
В приложении допущена архитектурная уязвимость Race Condition.
🔘 Что пошло не так:
— Промокод проверяется только на пустоту.
— Далее создаётся объект Promocode, где сразу происходит расчёт скидки.
— Между созданием объекта и присвоением его в ShoppingCart есть короткое окно (десятки мс).
— При одновременных запросах сумма может пересчитаться несколько раз.
🔘 Почему это критично:
— Блокировка (self.lock) есть, но не применяется к промокодам.
— Промокод применяется до записи в поле корзины.
— is_valid влияет только на ответ метода, но не предотвращает применение скидки.
🔤 Исправление:
— Синхронизировать применение промокода.
— Проверки выполнять до изменения состояния корзины.
📌 Race Condition подробно разобраны в PortSwigger Web Academy — обязательная тема для backend и security.
🎁 Новогодняя акция: 3 курса по цене 1
🤝 Помощь с выбором курса
🐸 Библиотека хакера
#ctf_challenge
Post #4971
1.25K
- 🔥 4
- 🥰 1