Wargame/FTZ

[FTZ] level17@ftz

공부하자~~ 2017. 11. 25. 23:54

이전 문제와 거의 흡사한데 이번엔 쉘이 실행되는 shell 함수가 없다.

RTL로 접근하려다가 환경변수를 이용해 25바이트 쉘코드로 쉽게 풀 수 있을 것 같았다.

일단 gdb로 보면 아까와 구조가 완전 같다. ebp-56이 buf의 시작주소이고, ebp-16이 call의 시작 주소다.

즉 call 함수는 40바이트를 넘긴 4바이트에 있는 주소를 호출할 수 있다.


일단 25바이트 쉘코드를 환경변수에 등록했다.


그리고 gdb로 공격할 프로그램을 실행시키고 환경변수의 위치를 파악했다.

0xbffffb5c 쯤 Nop sled가 있다. 

이 부분의 값을 call함수의 주소에 오버플로우를 시키면 쉘코드가 실행될 것이다.


쉘을 얻었다.