Pwn Intended 0x2
Travelling through spacetime!
Last updated
Was this helpful?
Travelling through spacetime!
Last updated
Was this helpful?
Sadly, we can't just smash the keyboard. Let's check what protections are enabled.
NX is enabled, so unfortunately no shellcode, but no other protections. Let's perhaps decompile it in GHidra.
So we have a 44-byte-long buffer storing our input, which is read by gets()
- a clear buffer overflow vulnerability. Interestingly, the program seems to also return the flag if the if condition is met. I've known GHidra to make mistakes with numbers, so I check the disassembly in radare2.
As we can see, the buffer our input is stored in is lower down the stack to the variable that is compared, so if we overflow the buffer we will overflow into the other variable. From the decompilation we know the buffer is 44 bytes long, so we need 44 bytes of padding before we reach the checked variable and write 0xcafebabe
.
Flag: csictf{c4n_y0u_re4lly_telep0rt?}