ㅇㅂㅇ

BOF 문제다. 파일을 다운받고 한번 실행해보자.

 

두 개의 입력을 받는다. IDA로 코드를 확인해보자.

 

s 변수는 main함수 내에 있고 name 변수는 보이지 않는다. 전역변수다.

 

name의 주소는 0x0804A060 이다.

 

이번엔 gdb로 prob1을 확인해보자.

 

음.. gets에 입력되는 부분에 bp를 걸고 어디에 입력되는지 확인해보자.

 

이렇게 두 개의 변수에 각각 AAAA와 AAAABBBBCCCCDDDD를 입력했다.

 

스택값을 확인해보자.

 

s 변수에는 0xffffd164 부터 입력이 됐다.

 

그런데 빨간 박스 부분을 보니 메인함수 ret 때 호출이 되는 주소인 것을 확인할 수 있었다.

 

그렇다면 s 변수에서 입력받을 때 0xffffd17c 에  쉘코드를 넣어 실행시켜주면 될 것 같다.

 

 

 


SCENARIO

 

1. 전역변수 name에 쉘코드를 입력해준다.

 

2. s를 입력할 때 overflow시켜 ret 주소에 name의 주소를 넣어준다.

 

 


 

 

이제 익스를 짜보자!

 

쉘코드는 다른 블로그에서 참고 하였다.

m.blog.naver.com/mathboy7/220215329450

 

쉘코드 모음

포너블 문제 풀때 여러모로 유용하게 사용되는 쉘코드들을 작성해서 모아봤습니다. 찾기 편하시라고.... 블...

blog.naver.com

 

실행을 해보자.

 

익스를 성공했다.

 

플래그는 HackCTF{1_l0v3_70p_pwn3r_m4lhyuk} 이다.

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

HackCTF - Simple_Overflow_ver_2 [150]  (0) 2021.01.19
HackCTF - x64 Simple_size_BOF [150]  (0) 2021.01.17
HackCTF - x64 Buffer Overflow [150]  (0) 2021.01.13
HackCTF - Basic_BOF #2 [100]  (0) 2020.12.06
HackCTF - Basic_FSB [100]  (2) 2020.12.05

+ Recent posts