unserialize – BabyPhD CTF Team https://babyphd.net Nói chung đây là một khái niệm vô cùng trừu tượng Thu, 27 Jul 2017 19:02:07 +0000 en-US hourly 1 https://wordpress.org/?v=5.2.2 104079289 ASISCTF 2017 - Web - Secure portal [1,2,3] https://babyphd.net/2017/05/12/asisctf-2017-web-secure-portal-123/ Fri, 12 May 2017 13:38:37 +0000 https://babyphd.net/?p=642 Continue reading ASISCTF 2017 - Web - Secure portal [1,2,3] ]]> 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>

]]>
642