1. Đề bài

Đề bài cho một web như vầy, không có một chức năng gì hết và đây là một bài blackbox không có source code.

/images/posts/ctf/Cyber-Apocalypse-2021/Daas/daas.png

Web black box

2. Giải quyết

Vì web không có chức năng nào khác ngoài cái trang welcome mặc định của framework laravel nằm lù lù ra đó. Nên tôi quyết định săm soi một lúc thì chợt phát hiện ra vài thứ hay hay.

Ngay tại góc dưới cùng bên phải có hiển thị version của laravel: Laravel v8.35.1 (PHP v7.4.16)

/images/posts/ctf/Cyber-Apocalypse-2021/Daas/version.png

Laravel v8.35.1 (PHP v7.4.16)

Được rồi, có vẻ hay rồi đây, vì tôi chợt nhớ gần đây laravel có một lỗi có thể RCE được, nó có tên là:

LARAVEL <= V8.4.2 DEBUG MODE: REMOTE CODE EXECUTION

Thì đó, trong tên có nói luôn kìa, là những version laravel 8.4.2 có khả năng gặp lỗi này. Cụ thể về lỗi này thì các bạn đọc ở đây nha: Laravel <= v8.4.2 debug mode: Remote code execution (ambionics.io)

Còn tôi giờ chỉ quan tâm chạy được để lấy flag thật nhanh thôi.

Điểm cần lưu ý ở lỗi này của laravel là web chạy laravel đó phải đang bật debug. Vậy để chắc chắn là web được cho có bật debug hay không thì tôi thử thay vì vào web bằng phương thức GET, tôi chuyển nó thành POST (Tôi sử dụng burpsuite nha).

/images/posts/ctf/Cyber-Apocalypse-2021/Daas/debug-mode.png

Debug được bật

Trước tiên là tìm exploit trên mạng và tải về nào.

/images/posts/ctf/Cyber-Apocalypse-2021/Daas/laravel-exploit.png

Tạo file .phar với lệnh find / -name “flag”* để tìm file flag trên server nhé.

/images/posts/ctf/Cyber-Apocalypse-2021/Daas/find-flag-file.png

Tìm flag file

Bây giờ thì tạo lại file .phar với lệnh cat để đọc file flag, sau đó là chạy exploit và lấy flag.

/images/posts/ctf/Cyber-Apocalypse-2021/Daas/get-flag.png

Exploit get flag

Flag là: CHTB{wh3n_7h3_d3bu663r_7urn5_4641n57_7h3_d3bu6633}