# Lab 1: Unprotected admin functionality

Lab này có phần admin panel không được bảo vệ.
Truy cập vào `/robots.txt`

Ta thấy đường dẫn đến `/administrator-panel` không được cho phép
Nhưng cứ truy cập vào

Thành công

# Lab 2: Unprotected admin functionality with unpredictable URL

Xem source thì thấy ta có thể vào Admin panel bằng cách truy cập `/admin--9dtzec`



# Lab 3: User role controlled by request parameter

Kiểm tra request thì ta thấy phần cookie lưu trữ thông tin về Admin

Sửa giá trị này thành true thì đã vào được admin panel



# Lab 4: User role can be modified in user profile

Đổi email thì ta thấy trong response có key `roleid`

Đổi value thành 2 thì response cũng được thay đổi theo

Truy cập vào admin thành công


# Lab 5: URL-based access control can be circumvented

- Admin panel chưa được xác thực tại /admin, nhưng hệ thống được cấu hình để chặn quyền truy cập từ bên ngoài vào đường dẫn đó.
- Tuy nhiên, back-end hỗ trợ header `X-Original-URL`.
`/admin` đã bị chặn

Thêm header `X-Original-URL` để bypass

Ta thấy trong response khi xóa user được chuyển đến 1 path

Chuyển đến path này để xóa user `carlos`


# Lab 6: Method-based access control can be circumvented

- Lab này triển khai các biện pháp kiểm soát quyền truy cập dựa trên HTTP.
- Để giải lab: login với `wiener:peter` và thăng cấp thành admin
Đối với admin có thể thăng cấp hoặc hạ quyền admin của user. Ta bắt được request như sau

Gửi request này với session của `wiener`

Kết quả trả về `"Unauthorized"` tức là không được phép thăng cấp
Sửa thành phương thức `GET`

Chọn `Follow redirectory`

Done!
# Lab 7: User ID controlled by request parameter

Đăng nhập với `wiener`

URL có `?id=wiener`
Sửa tham số `id` thành `carlos` thì ta đã chuyển sang được tài khoản `carlos`


# Lab 8: User ID controlled by request parameter, with unpredictable user IDs

Lab này đã sử dụng GUID cho `id` nên ta không thể sửa được như lab trên

Tuy nhiên, trên web lại hiện post của tài khoản carlos

Nhấp vào thì ta có được GUID của carlos

Đem đi sửa request thui


# Lab 9: User ID controlled by request parameter with data leakage in redirect

Sửa `id` thành carlos thì lab chuyển hướng đến trang login, tuy nhiên trong response thì lại nhận được API key luôn rùi


# Lab 10: User ID controlled by request parameter with password disclosure

Login với `wiener` có được response chứa mật khẩu

Sửa `id` thành `administrator` cũng nhận được response tương tự

Login vào admin và xóa user `carlos` được rồi

# Lab 11: Insecure direct object references

Lab này cho biết đoạn chat của người dùng được lưu trữ trực tiếp trên file server và chúng được truy xuất bằng URL tĩnh.
`View transcript` cho phép ta tải file chứa nội dung chat về

Ta tải 1 file đầu tiên về nhưng nó lại ghi là 2

Đổi về file 1 xem sao

Đoạn chat này chứa mật khẩu của user
Login `carlos` với mật khẩu này

Done!
# Lab 12: Multi-step process with no access control on one step

Đăng nhập với admin và thăng cấp cho user ta có thấy có 2 bước
- Bước 1: Chọn thăng cấp hoặc hạ cấp cho user
- Bước 2: Xác nhận điều này
Ta có lần lượt 2 request sau


Giờ ta sẽ đổi session và username về `wiener`



Thăng cấp thành công

# Lab 13: Referer-based access control

Tương tự như bài trước
Ta có request khi thăng cấp cho user

Đổi session và username của request này thành của `wiener`

Chọn `Follow redirectory`

Done!