Mục Tiêu
- Chiếm quyền điều khiển server và đọc một tập tin bí mật ở thư mục gốc (đường dẫn /)
Recon
- Sử dụng wappalyzer thấy website viết bằng php (version 7.3.33) và sử dụng web server Apache (version 2.4.52)
- Dùng thử thấy website chỉ có mỗi chức năng upload file và có thể truy cập thông qua đường link bên dưới
Có thể nghĩ đến việc tấn công file upload và path traversal
Attack
Máy chủ apache sẽ không tự xử lí được đuôi file .php mà phải nhờ các module PHP xử lí. Các module PHP sẽ thực thi file .php và trả về kết quả (thường là mã HTML) cho apache
Phía server sau khi nhận file sẽ kiểm tra đuôi file cuối cùng có phải là .php hay không
Từ những dữ kiện trên ta có thể tìm kiếm 1 đuôi file ngoài .php mà server vẫn xử lí như khi gặp đuôi .php
- file config cho thấy apache sẽ chuyển file cho module PHP xử lí khi gặp các đuôi file sau
- Tạo file hello.phar chứa nội dung là 1 hàm system() giúp thực thi lệnh trong hệ thống
- Sau khi upload và truy cập file ta có thể điều chỉnh parameter trên url để tìm ra flag
- Ngoài system() ta còn có thể sử dụng passthru()