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 |