description: nc rsamachine.wpictf.xyz 31337 (or 31338 or 31339)
category: Crypto - 250
Once again this a RSA challenge, you can connect to the service rsamachine.wpictf.xyz, it will display the public key sign anything except getflag
The author provided the challenge source code, we have to send getflag followed by its signature which will be verified in if privkey.verify(b'getflag', (signature,)):.
This is a classic RSA blinding attack, the full details about the attack are available at http://the2702.com/2015/09/07/RSA-Blinding-Attack.html. I made a python script based on the pwn lib to interact with the service.
We got the flag after launching the script 3 times.
description: A tribute to the former God Emperor of CSC and Mankind, Ultimate Protector of the CS Department, and Executor of Lord Craig Shue’s Divine will.
category: Miscellaneous - 150
You want some game play ?
Yeah I know I’m pretty good but not enough to win the game tho.
As you can see, it looks like the boss has infinity health (that’s not true, it’s a huge number…).
Okay, let’s launch Cheat Engine.exe
What are we looking for ? anything displayed on the screen that can make me win:
- `HP` ? I can put it to 200 and never lose life but that won't make me kill the boss faster.
- `Death` ? Hum I can identify the `die` function, so i won't die or maybe i can force the boss to die ?
- `level` ? Why not try to find the level in memory and change it to the level after the boss (boss should be level 6 if the level on the image is truly 1).
Modifying the level seems interesting. This is how I find the correct value:
So the level is stored at 0x6ff82c.
Let’s see what is accessing this value: right click -> Find out what accesses the address then finish the level to see what code is writing the next level:
The instruction is at 0xb50201.
cmon do it IDA (in debug mode of course):
The level is stored in [edx+1F0h]. all we have to do is to set this value to 7 (one more gif =) ):
Well, that was fast ! I recorded it with vlc, so I can go frame by frame:
The flag is WPI{j0in_th3_illumin@ti_w1th_m3}
PS1: I’m good @ gaming right ? You can find me on Twitch here =)
PS2: Best WPI challenge in my opinion, well done to the author ;)
description: Decrypt PIY{zsxh-sqrvufwh-nfgl} to get the flag!
category: Crypto - 100
The code was provided as a .pyc file (available at https://ctf.wpictf.xyz/files/d9543469d876cffa70bb84667ed5d369/jocipher.pyc).
It’s a compiled python file which means we can get the code back with uncompyle.
And we get the following python code.
The challenge’s author left a decode function, and a command line helper.
We can use the python jocipher.py --decode STRING_TO_DECODE and try to bruteforce the shift, unfortunately there were multiple flags starting by WPI