## Warm Up The main idea finding the flag is exploiting PHP type juggling. #### Step-1: After I visited the URL: http://chall.csivit.com:30272/, I was greeted with below code: ```php ``` #### Step-2: Sha1 of `10932435112` is `0e07766915004133176347055865026311692244` The comparison `if($hash == $target)` is vulnerable because it is not a strict comparison with `===`. #### Step-3: So a bit more deep search of `sha1(10932435112)` online gave me links to [Magic Hashes](https://git.linuxtrack.net/Azgarech/PayloadsAllTheThings/blob/master/PHP%20juggling%20type/README.md) #### Step-4: So, I tried the URL as any of the below. All have to work because all de-reference to same hash. - http://chall.csivit.com:30272/?hash=aaK1STfY - http://chall.csivit.com:30272/?hash=aaroZmOk - http://chall.csivit.com:30272/?hash=aaO8zKZF - http://chall.csivit.com:30272/?hash=aa3OFF9m Any other hashes like MD5, will give false flag of `csictf{loser}`. Voila! I got the flag. #### Step-5: Finally the flag becomes: `csictf{typ3_juggl1ng_1n_php}`