215, 1/11 회원가입  로그인  
   31337해커스
   ftz level5 --> level6에서요

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


level5.tmp는 /tmp 디렉토리에 있어서 . 만약에 level5.tmp를 level5 유저가 같은 파일을 먼저 만들면 그것을 level6(/usr/bin/level5) 유저의 프로그램을 실행하면 어떻게 level5.tmp가 지워질수 있지요. 그건 sticky bit가 걸린 디렉토리 특성에 맞지 않질 않나요?? 소스에는 remove() 함수가 사용된다고 하는데. 이것도 다른 사용자 파일을 지울수는 없지 않나요?? 내용이 혹시 이해가 되시는 지. 물론 소프트 링크 시도 하면 답은 나오지만 이상하게 level5 소유의 level5. tmp 가 사라지는 지 이해가 안되어서요. 이것의 소유가 level 6 로 변경이 되나요?? (/usr/bin/level5) 실행후에.. fd() and write() 함수 를 이해해야 하나요??

고수님들 답좀.. 감사합니다.

  Hit : 4434     Date : 2013/08/10 01:31



    
Chris Ruiel 에...답변드릴께요

level5->6으로 가는문제가..level6의 setuid를 가지고있는 프로그램 이지요...
즉..level5가 실행을 하게 되더라도.. 프로그램이 실행이 될때에는 level6의 권한을 갖게 된답니다.
말씀하신대로 스티키비트가 적용이 됐을때 level6프로그램을 실행시켜도 level5의권한이 유지된다면..
오류겠지만 setuid의 특성으로 인해서 문제가 없답니다.
2013/10/05