레벨8까지는 기본적인 프로그래밍에 대한 이해만 있으면 해결될 수 있었습니다. 레벨9부터는 조금 긴장하셔야...
레벨9로 갑시다:
이번부터는 해킹기법에 대한 이해가 필요하다. 한때 유명했던 8lgm 이 즐겨 발표했던 방법으로써 /usr/bin/ps2 를 이용하여 다음 레벨을 획득하여라. 힌트를 주자면 임시파일이 /var/tmp2 에 생성된다.
# Race Condition 문제...
프로세스가 실행되어 종료되는 사이에 끼어들어 내가 원하는 결과를 얻어내면 됩니다. 프로세스를 경쟁시키고 중간에 끼어들면 되는 것이지요. 임시파일을 생성하는 프로세스의 경우에 가능하며, 실행파일의 권한에 따라 루트를 획득할 수 있습니다.
/var/tmp2 에 생성되는 임시파일의 이름을 알아내는 것이 중요. 그 다음은 프로세스를 경쟁시켜, 임시파일의 권한을 다음 레벨의 ID 로 바꿔 문제를 해결하면 됩니다.
어떻게 임시파일의 이름을 알아낼 수 있을까요? 임시파일이 만들어진 다음에 곧바로 삭제되기 때문에 어려울 겁니다. C 할 필요 없이 쉘(shell)프로그래밍으로도 충분히 해결할 수 있습니다.
힌트는 Race Condition의 이해...