Flag 1
Sử dụng Burp Suite, path và query string của request là:
Bật tính năng intercept lên để capture và chặn request gửi đi. Ta chuột phải vào request và thay đổi HTTP method thành POST rồi bấm nút Forward để chuyển gói tin đi.
Lỗi hiển thị là:
Ngoài ra ta còn biết thông tin về current path là /var/www/html
: có ba cấp thư mục.
Dùng path traversal 3 lần và tìm đến /etc/flag1
:
Gửi request, đổi method thành POST và forward một lần nữa thì ta sẽ thu được flag.
Success
F1x3d-iNpu7-f0rrn
Flag 2
Path của request là:
Khi truy cập thì trang web yêu cầu reload lại. Sau khi reload thì giao diện hiển thị truy cập trái phép do là Guest.
Bật intercept, ta thu được request có dạng như sau:
Chú ý thấy dòng Cookie
, có thể đây là lý do mà trang web yêu cầu reload (để setup cookie). Đồng thời, giá trị của cookie là Guest
.
Chỉnh sửa cookie thành Admin
và forward request. Ta thu được thông báo lỗi như sau:
Có thể thấy, lỗi này tương tự như third scenario của LFI, ta thay đổi giá trị của cookie như sau:
Cookie mới sử dụng 3 lần path traversal và dùng trick %00
để loại bỏ đuôi .php
.
Forward request và ta thu được flag.
Success
c00k13_i5_yuMmy1
Flag 3
Thử dùng path traversal thông thường thì không có tác dụng, kể cả null byte injection cũng không. Cụ thể, với request là:
Thì thông báo lỗi là:
Sau khi đọc hint thì biết được rằng trang web sử dụng superglobal variable $_REQUEST
để trích xuất dữ liệu từ request. Biến này bao gồm các giá trị có trong _GET
, $_POST
và $_COOKIE
. Do đó, có thể thử thay đổi method thành POST hoặc chỉnh sửa cookie.
Ta sửa method lại thành POST thì thu được thông báo lỗi như sau:
Thay đổi request ban đầu thành:
Và ta thu được flag.
Success
P0st_1s_w0rk1in9
Flag 4
Để thực hiện RCE thông qua RFI thì ta cần host một file thực thi trên một server nào đó và truyền đường dẫn của file này vào input của trang web mà có thể thực hiện tấn công RFI. Xem thêm: RFI to RCE - The Hacker Recipes
Đầu tiên, ta cần viết file thực thi. Yêu cầu đề bài là thực thi lệnh hostname
.
Tìm được hàm giúp thực thi lệnh của hệ điều hành của PHP: shell_exec
.
File thực thi cmd.txt
có dạng như sau:
Sau khi có file thực thi thì ta chạy một web server đơn giản bằng Python:
File cmd.txt
sẽ có đường dẫn là http://IP:8080/cmd.txt
với IP
là địa chỉ IP của máy chạy web server.
Gọi request như sau:
Và ta thu được cờ.
Success
lfi-vm-thm-f8c5b1a78692