DEV Community

Peppa
Peppa

Posted on

CBJS: File Upload 6

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)

Image description

  • 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

Image description

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

  • Server nhận file sẽ kiểm tra mime type và kiểm tra cả nội dung xem có phải là là ảnh không

Image description

  • Mỗi loại file sẽ có 1 chuỗi byte đặc trưng xuất hiện ở đầu tệp

Image description

Từ những dữ kiện trên ta có thể upload file php có mime type là image/png và có nội dung bao gồm những byte của gif dẫn đến server hiểu nhầm

Image description

  • Sử dụng burp suite để thay đổi mime type và content

Image description

  • Sau khi upload và truy cập file ta có thể điều chỉnh parameter trên url để tìm ra flag

Image description

  • Ngoài system() ta còn có thể sử dụng passthru()

Image description

Top comments (0)