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함수의 주소에 오버플로우를 시키면 쉘코드가 실행될 것이다.
쉘을 얻었다.