Wildest Dreams Pt. 2 (CTF.SG 2022)
1989.php
Once we open this file, a simple glance through the source code shows that the
flag will be revealed once md5(i1) == md5(i2)
.
The only requirements for i1
and i2
is that they shouldn’t be the same, and
they must have a length of more than 15 characters.
In php, two strings matching the regular expression 0+e[0-9]+
compared with
==
returns true
. Thus, strings such as 0e69
, 0e12
etc will return true
when compared with each other.
Some md5
hashes will output hashes starting with 0e
, and these are called
magic hashes
, you can read up on them here.
Thus, all we need to do is to pass in 2 strings which will evaluate to 0e...
,
and viola, we get the flag! These strings are easily found by searching
md5 magic hashes
on google. The ones I used were hashcatsB4SOwuGVuoe
and
hashcatfaXyv0NCydC2
, which I took from https://github.com/spaze/hashes/blob/master/md5.md.
You can see from here that both strings evaluate to 0e...
when converted to an
md5 hash.
Query to get flag: http://chals.ctf.sg:40401/1989.php?i1=hashcatsB4SOwuGVuoe&i2=hashcatfaXyv0NCydC2
Flag
The flag is: CTFSG{you_see_me_in_h1nds1ght_tangled_up_with_you_all_night}