[Pwnable] x64 Simple_size_BOF
Wargame/HackCTF

[Pwnable] x64 Simple_size_BOF

오늘은 x64 Simple_size_BOF 문제를 정리해보겠습니다.

 

문제부터 64비트 환경에서 BOF를 터트리라는 냄새가 솔솔 납니다 👋

 

우선 Mitigation부터 확인을 해보면

확실히 쉬운 문제답게 아무런 보호기법도 걸려있지 않습니다.

 

Binary를 실행시켜 보겠습니다

자살방지 문제랍니다 허헣👀

 

일단 buf의 주소를 알려주니

NX bit가 걸려 있지 않아 buf 주소에 shellcode를 올린뒤

ret 대신 buf 주소를 호출 하면 되겠습니다.

 

근데 문제점이 있습니다🤷‍♀️

 

계속 buf의 주소값이 바뀝니다

 

그렇다는 것은 ASLR이 걸려있다는건데 

우리는 buf주소를 어떻게 받아올 수 있을까요?

 

바로 pwntools에 포함되어 있는 기능을 활용할 겁니다.

 

그건 이따 확인하시져🤘

 

IDA로 확인해보겠습니다.

 

gets에서 bof가 터질 듯 합니다.

 

페이로드를 구상해보자면

 

1. Buf address에 ShellCode를 올린다

2. v4에 dummy값으로 Buffer를 채운다.

3. SFP 역시 dummy값으로 Buffer를 채운다.

4. ret에 도달하면 Buf address를 대입한다.

 

 

저는 일단 페이로드를 이렇게 짰습니다.

 

p.recvuntil과 p.recv을 활용해 buf 주소를 불러온 후

ShellCode를 이용하여 쉘을 땄습니다.

 

성공적으로 쉘이 따졌습니다!

 

FLAG = HackCTF{s000000_5m4ll_4nd_5m4ll_51z3_b0f}

'Wargame > HackCTF' 카테고리의 다른 글

[Pwnable] Offset  (0) 2020.09.19
[Pwnable] Simple_Overflow_ver_2  (0) 2020.09.19
[Pwnable] x64 Buffer Overflow  (0) 2020.09.16
[Pwnable] 내 버퍼가 흘러넘친다!!!  (0) 2020.09.15
[Pwnable] Basic_FSB  (0) 2020.09.06