CTF Write-up Secathon 2024
Challenge Information
Challenge Name: web-secu-challenge
Challenge URL: http://challenge.fuctf.com:8004/
Challenge Description: Can you use an injection technique to capture the flag in the project?
Tools Used:
Burp Suite Community Edition
URL encoding/decoding tool (urlencoder)
Exploitation Steps

Mở Burp Suite lên và quan sát trang web.
Tôi nhận thấy trang web có 1 nơi có thể nhập thông tin và 1 nút submit.
Bắt đầu thử các chức năng của trang web.

Thử nhập test vào khung và submit. Ta nhận thấy trang web hiển thị kết quả là
0test
Tôi nghĩ đây có thể là 1 mảng hoặc thứ tự các chuỗi người dùng nhập vào. Hãy vào Burp Suite để xem gói tin.

Tôi chọn chức năng Repeater của Burp Suite để xem và chỉnh sửa gói tin có phương thức POST.
Ở đây tôi nhận thấy có chứa một tham số POST với tên là a và giá trị là test trong phần request.
Chú ý sang phần Response tôi nhận thấy có 1 file target.php và 1 đoạn comment là 1 đoạn code php liên quan đến class XYZ.
Truy cập vào target.php.

Trang web trả về OK, Flag is here! .
Mở Burp Suite lên và quan sát gói tin của target.php.

Tôi phát hiện tại phần Cookie của phần Request có 1 tham số list với 1 chuỗi khá phức tạp. Tôi dùng công cụ urlencoder để decode chuỗi này.

Tôi nhận về 1 chuỗi thông tin a:1{i:0;s:4:"test";}nó có vẻ là một mảng hoặc đối tượng trong PHP Serialization.
Có thể đây là lỗi Object Injection hay PHP Deserialization.
Thử thay đổi giá trị của list để xem phản hồi của server. Ở đây tôi dùng công cụ urlencoder để encode payload.

Thực hiện thay đổi giá trị của chuỗi list.

Thực hiện truy cập lại index.php. Và tôi đã tìm thấy flag.
FUSec{flag-418e9146}
