이전 문제와 거의 흡사한데 이번엔 쉘이 실행되는 shell 함수가 없다.
RTL로 접근하려다가 환경변수를 이용해 25바이트 쉘코드로 쉽게 풀 수 있을 것 같았다.
일단 gdb로 보면 아까와 구조가 완전 같다. ebp-56이 buf의 시작주소이고, ebp-16이 call의 시작 주소다.
즉 call 함수는 40바이트를 넘긴 4바이트에 있는 주소를 호출할 수 있다.
일단 25바이트 쉘코드를 환경변수에 등록했다.
그리고 gdb로 공격할 프로그램을 실행시키고 환경변수의 위치를 파악했다.
0xbffffb5c 쯤 Nop sled가 있다.
이 부분의 값을 call함수의 주소에 오버플로우를 시키면 쉘코드가 실행될 것이다.
쉘을 얻었다.
'Wargame > FTZ' 카테고리의 다른 글
[FTZ] level19@ftz (0) | 2017.11.26 |
---|---|
[FTZ] level18@ftz (0) | 2017.11.26 |
[FTZ] level16@ftz (0) | 2017.11.25 |
[FTZ] level15@ftz (0) | 2017.11.23 |
[FTZ] level14@ftz (0) | 2017.11.21 |