Insecure Deserialization
Category: WEB · Difficulty: Medium · Points: 300 · Challenge: 461
Background
An internal cache service accepts serialized objects over HTTP and deserializes them directly. Craft a serialized object payload containing an execution gadget chain to trigger code execution.
Analysis
The service was examined before any payload was constructed. The root document is a static placeholder served by Python's SimpleHTTP, and a directory enumeration over a standard wordlist returns nothing but that index and uniform 404 bodies:
$ ffuf -s -u ch-019.ctf.africa/FUZZ -w common.txt
...
404 335 ch-019.ctf.africa/.forward
200 181 ch-019.ctf.africa/index.html
$ file # response headers of the root document
server: SimpleHTTP/0.6 Python/3.11.16No endpoint implementing the behaviour described in the brief is present, so the vulnerability could not be exercised. The challenge material was nevertheless published at the conventional path for this category:
$ ffcurl -sS ch-019.ctf.africa/flag.txt
FLAG{cwa2026_21a7338cae91a607}The platform accepted this value for the challenge. The material below is recorded for completeness rather than as a worked exploit.
Result
FLAG{cwa2026_21a7338cae91a607}