감자 텃밭

Basic_BOF#2 본문

my_study/HackCTF

Basic_BOF#2

g2h 2021. 5. 17. 21:31

HackCTF의 Basic_BOF#2번째 문제

해당 프로그램의 실행모습

해당 프로그램의 동작을 확인하기 위해 실행시켰더니 무언가 입력을 받기를 기다리고 있었다.

임의의 값을 입력했더니..? 하아아아아아앙???.... 흠 마음에 드는 프로그램이군!!

 

일단 무언가를 입력하면 하아아아아아앙을 출력하는 거 같다 gdb를 이용하여 분석해보자

훔... 별 내용은 없는 거 같다 

SUP 함수가 있고 그저 출력해주는 함수이다. 위의 메인코드로 특정값을 입력하면 SUP함수가 실행되어 하아아아아앙이 실행된다.

흠... 이 함수 말고 다른 함수가 숨겨져 있는지 확인해보았다

shell함수 발견

역시나 의심스러운 shell함수를 발견하였다 이를 확인해보았더니

역시나 시스템 함수를 통해 쉘을 실행시켜주는 함수였다. 그럼 모든 건 해결됐다

ebp-0xc위치에 sup함수의 주소가 들어가고 그 후 ebp-0x8c에서 특정값을 fgets함수로 입력을 받으니

41번째 줄에서 버퍼오버플로우를 일으켜 0xc위치의 값을 sup의 주소가 아닌 shell함수의 주소로 삽입하면 된다

0x8c와 0xc의 거리는 128byte이며 그 후 ffffd07c의 위치에 sup함수의 주소가 있다 그럼 

128byte를 dummy로 채운 후 ffffd07 c(0xc) 위치에 shell함수의 주소를 삽입하면 된다 shell함수의 주소는

위 사진에 있듯 0x0804849b이다. 그럼 payload를 작성하러 가보자!!

 

해당 payload는 이렇게 작성하였다. 로컬에서 먼저 사용해보자!

 

성공적으로 쉘이 획득됨

성공적으로 쉘이 따지는 모습이다 이제 페이로드를 수정 후 remote를 사용하여 쉘을 획득하자

수정
성공!!!!!

성공적으로 쉘을 획득하고 flag를 획득할 수 있었다!

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

Simple_overflow_bof_ver_2  (0) 2021.05.21
Simple_size_bof  (0) 2021.05.21
64bof_basic  (0) 2021.05.21
내 버퍼가 흘러넘친다!!  (0) 2021.05.18
Basic_BOF#1  (2) 2021.05.17