이번 문제도 역시 오버플로우.
왠지 level11 과 버퍼 크기도 동일한게 비슷해보이는데 한번 /tmp 로 이동해 똑같이 .c 파일을 만들고 컴파일 한 후 디버깅해보자.
후후... gets 함수 위험하다고 알려준다.
디버깅해보면,
진짜 level11 이랑 똑같아 보인다.
str[256] + dummy[8] + SEP[4] + RET[4] = 272 바이트.
그냥 level1 과 똑같이 환경 변수에 쉘코드를 담은 변수를 선언해두고 해당 주소를 ret 위치에 오도록
264 바이트를 nop 으로 채우고 환경 변수 주소를 입력해주어 실행하자.
환경변수 선언! 을 해야하지만 앞서 level11 에서 만들어뒀으니 패스,
이 후 환경 변수 주소를 출력해주는 실행 파일도 그대로 사용.
알아낸 익스 코드 담긴 환경 변수 주소 이용해 attackme 에 사용.
이 문제에서는 실행 후 입력을 받는 형태이기 때문에 인자로 넣지 않고 파이프를 이용해서 실행!
실행 후 외계어 출력, my-pass 입력하면 level13 password "have no clue" 획득.
'WARGAME > FTZ [system]' 카테고리의 다른 글
ftz level 14 [level14] (0) | 2020.04.30 |
---|---|
ftz level 13 [level13] (0) | 2020.04.30 |
ftz level 11 [level11] (0) | 2020.04.30 |
ftz level 10 [level10] (0) | 2020.04.30 |
ftz level 9 [level9] (0) | 2020.04.30 |