Hey yo!
Long time no C++
Có chút vấn đề khi mình viết writeup cho bài này đó là phần lầy flag có vẻ không hoạt động 🙁 nên hiện tại mình chỉ có thể viết được phần 1.
Okie, link
Có gợi ý như sau By the way I know it's dangerous to code with IDE in server-side but I really obey security instructions.
Vào trang web và lưu lại các request & response bằng Burpsuite Proxy
Có thể là có cả những file cấu hình project - Information leak. Tiện sẵn máy mình cũng cài PHPStorm nên tạo luôn 1 project để xem thế nào
Như vậy là có các file như trong hình, thử vào .idea/workspace.xml
và ...
Tiếp tục là 1 file php khác
Phân tích kỹ ta có 1 đoạn compare lỗi ==
ở if($realSign == $signature)
Bypass bằng cách bruteforce input để md5sum của (input + unknown-key) = 0e[a-f0-9]{30} aka magic hash, sau đó đến phần unserialize của $payload... hmm, không đơn giản lắm nhỉ, bruteforce mà vẫn phải unserialize được. Tuy nhiên thì ta có thể chèn thêm junk variables vào trong $payload mà deserialize không ảnh hưởng gì cả.
Ví dụ
Chạy 1 lúc (ở server cũ)
Sử dụng auth trên để lấy flag + source cho phần thứ 2.
<continue>