본문 바로가기
시스템 해킹/FTZ

level5

by sonysame 2016. 9. 10.

쉬운 방법

cd /usr/bin을 입력

ls -al level5를 통해 level5라는 파일이 있음을 알 수 있는데, 

level6에게 SetUID가 걸려있다.  


cd /tmp를 입력하여 /tmp 디렉토리에 들어간 후,

ls -al을 통해 파일을 확인하면, 

level5.tmp파일이 생성되지 않음을 알 수 있다.

그렇다면, level5.tmp파일을 먼저 만들어 놓자.

vi level5.tmp를 해도되고,

cat > level5.tmp를 해도 된다.

어떤 내용들을 입력한후, 

다시 cd /usr/bin입력하여

./level5을 실행하다.

그리고 다시 cd /tmp로 들어가면

level5.tmp에 level6의 권한으로 들어갔으니 level6의 패스워드가 

써있는 임시 파일이 덤프된다. 



두번째 방법


level5.tmp가 생성되고 삭제되기 바로 직전에 이 파일을 가로채려면 어떻게 해야할까요?


이 문제를 풀기 위한 방법은 여러가지가 있지만, 여기서는 심볼링 링크(symbolic link)를 이용한 해킹 방법을 알아보겠습니다. 일단 심볼링 링크로 어떻게 이문제를 풀 수 있는지 시나리오를 설명해드리겠습니다.



즉, /tmp/b라는 파일을 만들고, 심볼릭 링크를 통해 level5.tmp를 일종의 가명을 만드는 것이다

그렇게 되면, /usr/bin/level5라는 프로그램이 level5.tmp에 쓰기 연산을 수행하지만 

level5.tmp는 tmp/b에 연결되어 있으므로, tmp/b에 데이터를 쓰게 되는 것이다.



cd /tmp에서

touch b를 해서 파일 생성

ln -s b level5.tmp 심볼릭 링크를 걸어준다.$ ln -s b level5.tmp


cd /usr/bin

level5실행


cd /tmp 에서 보면

cat b를 통해 level6의 권한으로 level6의 패스워드를 볼 수 있다. 


what the hell




'시스템 해킹 > FTZ' 카테고리의 다른 글

level7  (0) 2016.09.10
level6  (0) 2016.09.10
level4  (0) 2016.09.10
level3  (0) 2016.09.10
level2  (0) 2016.09.09