# Lab 1: File path traversal, simple case

- Lab này chứa lỗ hổng path traversal ở phần hiển thị hình ảnh sản phẩm.
- Cần truy xuất nội dung của tệp `/etc/passwd`
Lab hiển thị hình ảnh với đường dẫn `/image?filename=name.jpg`

Sửa tham số `filename` bằng cách thêm một số `../` vào trước `/etc/passwd`



Vậy là đọc được nội dung bên trong file passwd

Done!
# Lab 2: File path traversal, traversal sequences blocked with absolute path bypass

Tương tự lab trên, thay bằng đường dẫn tuyệt đối là oke


# Lab 3: File path traversal, traversal sequences stripped non-recursively

Tương tự lab 1, nhưng `../` đã bị loại bỏ, vì vậy ta sẽ thay thế bằng `....//`


# Lab 4: File path traversal, traversal sequences stripped with superfluous URL-decode

Lab này chặn đầu vào chứa các chuỗi truyền tải đường dẫn. Sau đó, nó thực hiện giải mã URL của đầu vào trước khi sử dụng. Vì vậy, ta sẽ mã hóa `../` trước khi truyền vào

Encode 1 lần nhưng không đúng

Encode lần 2 xem sao



# Lab 5: File path traversal, validation of start of path

Lab này yêu cầu đường dẫn phải từ expected folder.
Lab hiển thị hình ảnh với đường dẫn `/var/www/images/name.jpg`

Payload `filename=/var/www/images/../../../etc/passwd`


# Lab 6: File path traversal, validation of file extension with null byte bypass

Xem nguồn trang ta thấy tên tệp được cung cấp như sau

Ảnh rating nằm trong thư mục `images`, ta sẽ thử xem ảnh sản phẩm có nằm cùng 1 thư mục hay không


Chỉ có đuôi `.jpg` được chấp nhận, còn `.png` thì không
Lab yêu cầu lấy ra nội dung của `etc/passwd` mà file passwd không có đuôi là `.jpg`, vì vậy ta phải
- Thêm 1 byte null là `%00` để kết thúc đường dẫn tệp
- Thêm đuôi mà file yêu cầu: `.jpg`

