DEV Community

Peppa
Peppa

Posted on

CBJS: Path Traversal 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 /)

Attack

  • Website cho phép upload image or zip

Image description

  • Nén file a.txt thành a.zip sau đó upload, server sẽ giải nén và sau khi truy cập sẽ chuyển tới url

Image description

  • Sau khi giải nén sẽ lấy luôn tên file bên trong và gán content bằng file_put_content() mà không hề filter file name

Image description

Từ những dữ kiện trên ta có thể zip 1 file có tên file chứa ../ để chuyển file ra document_root và có nội dung là code php để sau khi server giải nén có thể ta có thể execute file -> Có thể RCE

  • Tạo file hello.php

Image description

  • Sử dụng tool evilarc để nén tên file ../../hello.php thành hello.zip, nếu không sử dụng tool thì khó có thể nén được file kèm theo ../ phía trước

Image description

  • Gọi đến file thành công, cần chuyển file ra document root vì có thể trong folder upload đã bị cấm thực thi các file php, nhưng đây là website biết bằng php nên chắc chắn không thể tất cả các folder đều bị cấm thực thi code php -> Điều đó là vô lí.

Image description

Top comments (0)