📌 Bài viết này thuộc chuỗi write-up quá trình tiếp cận và đáp án cho các bài lab từ Portswigger Web Academy mà mình đã làm trong thời gian thực tập tại NCSC.
Mình không thích lắm cái cách mấy idol viết write-up lab theo kiểu cứ như thể họ đã biết đáp án từ đầu – họ chẳng bao giờ đủ kiên nhẫn để giải thích cặn kẽ tại sao họ lại làm một cái gì đó. Vậy nên, write-up phong cách bạn Tiểu ra đời. Mình mong là bạn có được những câu trả lời thoả đáng qua loạt bài này. Những ý kiến góp ý, thảo luận, báo lỗi – luôn luôn được hoan nghênh dưới mục comment.
Đề bài
Ngữ cảnh: Lab này không kiểm tra kỹ càng thông tin mà người dùng nhập vào. Bạn có thể khai thác một lỗi logic trong quy trình mua hàng để mua những món đồ với một giá khác.
Mục tiêu: Mua một cái áo “Lightweight l33t leather jacket”
Thông tin sẵn có: Tài khoản quen thuộc wiener:peter
Phân tích
Vẫn là câu chuyện gợi ý giải bài luôn có trong hướng dẫn trước đó: Ta có thể đọc được nó từ chủ đề “Business logic vulnerabilities”.

Vài bước dạo quanh (aka. recon kiểu cưỡi ngựa xem hoa) để xem trang web và flow mua hàng có gì bất thường không.
- Vào tài khoản, thấy mình có 100 đô

2. Cái áo đắt hơn, làm sao để mua? Ý tưởng có thể là sửa đổi thứ gì đó để giá tính ra nhỏ hơn 100 đô.

3. Thử tiếp tục place order, báo không đủ tiền

4. Thử nhập coupon nhăng nhít, báo invalid coupon

Nghĩ ngay ra là mình có thể thử xem và sửa đổi request khi mua đồ thế nào đó.
Lời giải

- Xem xét “Add to cart” request.
- Chỉnh sửa giá tiền thành cái giá ta muốn. Gửi request này qua Burp Repeater.
- Gửi request đã sửa đổi này đi. Nhận thấy là ứng dụng chấp nhận request này.
- Đóng tab vừa nãy ta thêm đồ vào giỏ. Chọn “Follow redirection” trong Repeater, chuột phải chọn “Copy URL” và truy cập đến URL mới này trong trình duyệt.
- Hoàn thành.

