감자 텃밭

내 버퍼가 흘러넘친다!! 본문

my_study/HackCTF

내 버퍼가 흘러넘친다!!

g2h 2021. 5. 18. 17:04

HackCTF 내 버퍼가 흘러넘친다!!

 

프로그램 실행 모습

이번 문제의 프로그램을 동작을 확인하기 위해 실행시켜보면 name과 input에서 입력을 받는 프로그램이다.

흠.. 일단 gdb로 까 보자

해당 프로그램을 대충 분석해보면 0x14(20byte)의 공간을 스택에 할당하고 read함수와 gets함수로 입력을 받는다

read함수로 입력받는 값은 name변수로 전역 변수임을 알 수 있다 그렇다는 건 스택이아닌 bss영역에 존재한다.

또한 gets에서 버퍼오버플로우를 일으킬 수 있다.

그렇다는건 name변수에 쉘 코드를 삽입하고 input입력값 0x14(20)+sfp(4)를 dummy값으로 채운 후 ret에 name변수의 주소를 삽입하면 될 거 같다. 

그럼 이제 payload를 작성하자

이번에는 쉘 코드 대신 pwntools에서 지원하는 라이브러리를 사용하였다(신기신기)

저번째 입력에서 name(전역 변수)에 쉘 코드를 입력하고 두 번째 입력값에 더미 값으로 20+4(sfp)까지 버퍼오버플로우를 일으킨 후 전역 변수의 주소를 삽입하였다.

 

전역변수의 주소는 위의 read의 파라미터로 확인했듯 0x804a060이다 이것을 리틀애 디안 방식으로 만들어 넣었다.

그리고 확인해보면!

성공한 모~~~습

성공적으로 성공하여 쉘을 획득하고 플래그 또한 획득할 수 있다!!!

'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
Basic_BOF#2  (1) 2021.05.17
Basic_BOF#1  (2) 2021.05.17