ws1004 2019. 9. 24. 01:28

 

200점 치고는 매우 쉬운 문제였다.

 

입력한 값에 =이 붙어서 출력이 된다.

 

 

딱히 기법을 감안하면서 풀지 않아도 될 것 같습니다.

IDA 64bit을 이용해서 분석해 보겠습니다.

 

하나는 main 함수와 하나는 bash 쉘이 있을 것 같다.

 

name이라는 변수에 입력을 하고 =을 붙입니다.

getenv함수가 있지만 입력한 값에 대한 환경변수를 가져 오는 구문 인거 같다 정도만 알면 될 것 같습니다.

 

 

예상 그래도 쉘이있습니다.

 

name의 크기 + SFP 만큼 dummy값을 넣고 RET 자리에 spawn_shell 주소를 넣으면 될것 같습니다.

 

 

name 크기 0x410 = 1040 + SFP = 1048

 

 

spawn_shell함수 주소 : 0x400897

 

이제 exploit code를 작성해 보겠습니다.

 

 

Flag : HackCTF{b29a2800780d85cfc346}