x64 환경 BOF 문제이다. ida로 코드를 확인해보자.

 

buf의 주소를 출력해주고 buf의 입력을 받는다.

 

buf의 ret까지의 거리를 peda로 확인해보자.

 

실행을 해보면 buf의 주소와 입력을 받는다.

 

get 부분에 bp를 걸고 ret을 찾아보자.

 

ret_addr = 0x7ffff7a03bf7

입력받은 rsp+27952(6D30)를 확인해주면 +8byte 위치에 ret주소가 들어가있다.

 

쉘코드를 입력해주고 rsp+27960의 ret 위치에 buf의 주소를 넣으면 BOF가 될 것이다.

 

익스를 짜보자.

 

쉘코드는 64bit 쉘코드를 사용하였고, 계속해서 바뀌는 buf의 주소를 받아와 처리하였다.

 

 

플래그는 HackCTF{s000000_5m4ll_4nd_5m4ll_51z3_b0f} 이다.

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

HackCTF - Offset [150]  (0) 2021.01.19
HackCTF - Simple_Overflow_ver_2 [150]  (0) 2021.01.19
HackCTF - x64 Buffer Overflow [150]  (0) 2021.01.13
HackCTF - 내 버퍼가 흘러넘친다!!! [150]  (0) 2020.12.22
HackCTF - Basic_BOF #2 [100]  (0) 2020.12.06

+ Recent posts