# Lab 1: Information disclosure in error messages

- Lab này đang sử dụng một framework dễ bị tấn công của bên thứ 3.
- Để giải lab: submit phiên bản của framework.
Ta có request `/GET /product?productId` nhận giá trị là số, chèn chuỗi vào thì nhận được lỗi

Ta biết được framework web sử dụng là `Apache Struts 2 2.3.31`

# Lab 2: Information disclosure on debug page

- Lab này chứa một trang debug tiết lộ thông tin nhạy cảm về ứng dụng.
- Để giải lab: submit giá trị của biến `SECRET_KEY`.
Check thử các comment

Có 1 đoạn code `Debug` được comment

Chuyển hướng đến `/cgi-bin/phpinfo.php` và ta tìm thấy `SECRET_KEY`


# Lab 3: Source code disclosure via backup files

- Lab này rò rỉ mã nguồn của nó thông qua file backup trong một thư mục ẩn.
- Để giải lab: submit mật khẩu database
Truy cập file `/robots.txt`

Thấy `/backup` đã bị ẩn
Truy cập file `/backup` này

Có vẻ đây là password đã được mã hóa

Submit thui

# Lab 4: Authentication bypass via information disclosure

- Giao diện admin của lab chứa lỗ hổng xác thực
- Để giải lab: lấy tên header để bypass. Truy cập vào admin và xóa người dùng carlos.
Sau khi check web ta tìm được `/admin`

Tuy nhiên truy cập thì nhận được lỗi
Dựa theo hint của đề thì ta có thể dùng HTTP header để xử lý.`OPTIONS` và `TRACE` được dùng để lấy thêm thông tin.
Ở đây ta sẽ dùng `TRACE`

Web trả về `X-Custom-IP-Authorization: 171.224.177.4` chứa 1 địa chỉ IP, việc này để xác định xem request có phải là `localhost` không
Thay thế bằng `127.0.0.1` để giả mạo `localhost`

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

# Lab 5: Information disclosure in version control history

Ta thấy có 1 thư mục `.git`

Tạo 1 bản sao của thư mục này


Kiểm tra nhật ký git bằng `git log`

Lần commit cuối cùng có liên quan đến password của admin, vì vậy ta sẽ checkout lần commit trước đó

Tìm thấy 1 file `admin.conf`
Đọc file này thì ta lấy được password

Login vào admin thui

