---
# System prepended metadata

title: Limit overrun race conditions
tags: [Race conditions]

---

# Limit overrun race conditions

* Yêu cầu của bài lab là chúng ta sẽ khai thác lỗ hổng race condition ở tính năng thanh toán để mua được **Lightweight L33t Leather Jacket** với số tiền hiện có. Đầu tiên ta login vào account được cấp, chúng ta hiện có $50 và một mã giảm giá 20%.
![Capture01](https://hackmd.io/_uploads/H1FHiIIvT.png)

* Chúng ta sẽ thêm **Lightweight L33t Leather Jacket** vào giỏ hàng và áp dụng mã giảm giá. Sau đó vào Burp Suite Proxy để kiểm tra request `POST /cart/coupon` vì có thể lỗ hổng race condition nằm ở đây.
![Capture02](https://hackmd.io/_uploads/SytSoL8Da.png)
![Capture03](https://hackmd.io/_uploads/rJKBoLUPa.png)

* Chúng ta sẽ thử khai thác lỗ hổng race condition bằng cách gửi 20 request `POST /cart/coupon` đến Repeater và gom chúng lại thành 1 nhóm. Chúng ta quay lại giỏ hàng để hủy áp dụng coupon, sau đó chọn **Send group (parallel)** để gửi tất cả request trong group cùng lúc. Như ta thấy kết quả ở hình dưới có nhiều hơn 1 request trả về response là **Coupon applied**, như vậy chúng ta đã áp dụng được coupon nhiều lần.
![Capture04](https://hackmd.io/_uploads/BJYriLIDp.png)

* Quay lại giỏ hàng và load lại trang web, ta thấy tổng giá hiện tại đã nhỏ hơn $50.
![Capture05](https://hackmd.io/_uploads/ByKSi8LPT.png)

* Đặt hàng và hoàn thành bài lab.
![Capture06](https://hackmd.io/_uploads/r1FBoI8PT.png)
