FTZ_level17

해킹/FTZ 11~20 2016. 1. 13. 18:40


level16과 똑같지만 shell함수가 삭제되었다.

별로 낙심할 필요는 없다. 함수 대신 쉘코드를 환경변수에 넣어주고 환경변수를 가르키게 하면 된다. 여태까지 해왔던 방식 그대로다.


중간에 vi tmp는 실수다;;

아무튼간에 전처럼 10000개의 nop과 25바이트 쉘코드를 합친 내용을 환경변수에 넣어주고 그 주소를 출력해 주는 프로그램을 짜서 주소를 구했다.

마찬가지로 0xbfffd51a에 5000을 더해줘서 0xbfffe8a2에 void *call을 떨궈주도록 하자.


40바이트 더미 뒷쪽에 4바이트 주소인것 이제는 확인하고 싶지도 않다 그냥 디버깅 없이 페이로드를 만들어 입력했다.


(python -c 'print "a"*40+"\xa2\xe8\xff\xbf"';cat)|./attackme



풀렸다.

한가지 첨언하고 싶은 것은 쉘코드를 넣어주고 그것을 가르키게 한 것이 level16에서 shell()함수를 가르킨 것과 논리적으로 완전히 똑같다는 것이다. 곰곰히 생각해보길 바란다.

끝-

'해킹 > FTZ 11~20' 카테고리의 다른 글

FTZ_level19  (0) 2016.01.13
FTZ_level18  (0) 2016.01.13
FTZ_level16  (0) 2016.01.13
FTZ_level15  (0) 2016.01.13
FTZ_level14  (0) 2016.01.13
Tags
Social