티스토리 뷰
벌써 level5로 반이나 왔다...
먼저 ls로 무엇이 있는지 본다.
역시나 hint가 있고 cat hint로 hint를 열어본다.
/usr/bin/level5을 한번 보자
setUID가 걸린 것을 볼 수 있다.
이것으로 level6의 password를 알아내보자
./level5로 실행을 해보면
/tmp디렉토리에 level5.tmp라는 파일이 생겨야 하는데
생기지 않는다..........왜지?????
아마도 프로그램이 종료되기 전에 삭제가 된 것 같다.....
그럼 어떻게 해야할까?????....ㅠㅠㅠ
이럴때는, 심볼릭 링크를 사용해야 한다.
심볼릭 링크를 하기 전에
i-node를 먼저 알아보자!!!!
파일은 파일의 데이터와 파일의 속성으로 이루어져 있다.
여기서 파일의 속성 = 아이노드(i-node)
파일시스템 내에서 해당 파일을 식별하기 위한 고유의 식별자이다.
이 두가지가 하드디스크에서 별도의 공간에 저장이 된다.
보통 아이노드 영역과 데이터 영역으로 나누어져 있다.
모든 파일은 각자 1개의 아이노드를 가지고 있다.
디렉토리도 가지고 있다.
루트는 아이노드 0번으로 고정되어있다.
아이노드 구조를 한번 보쟈!!
아이노드는 인덱스와 파일 속성으로 이루어져 있다.
아이노드에 있는 인덱스들은 실제 파일데이터에 mapping된다.
여기서 직접맵핑과 간접맵핑이 있다.
직접 맵핑은 그대로 직접 맵핑하는 것이고
간접 맵핑은 간접적으로 한번 둘러서 맵핑하는 것이다.
아이노드는 이정도하고
이제 하드링크와 심볼릭링크에 대해서 알아보자!!!.
바로가기 개념으로 리눅스에 링크 기능이 있다.
특정 파일이나 디렉토리를 링크 걸어서 사용할 수 있다.
하드링크는 i-node를 공유해서 사용한다.
같은 i-node를 같고 있어 다른 이름이지만 파일 내용이 같다고 본다.
원래 파일이 삭제되어도 사용할 수 있다.
심볼릭링크는 포인터 같은 것이다.
다른 i-node를 같고 그 파일을 가리키고 있는 것이다.
원래 파일이 삭제되면 사용할 수 없다.
삭제된 파일을 가리키는 심볼릭링크를 다시 사용하기 위해서는 삭제된 파일 이름과 같은 파일을 생성한다.
이제 문제로 돌아와서 새로 만든 빈파일에 심볼릭 링크로 level5.tmp를 만들면
level5,tmp의 내용이 빈파일에 들어가고
level5.tmp가 삭제되어도 빈파일은 아직 있으니 내용을 볼 수 있을 것이다.
먼저 빈파일 s를 만들어본다.
touch s
touch명령어를 쓰면 빈 파일을 만들 수 있다.
이제 s파일에 심볼릭 링크를 건다.
ln 명령어를 사용하면 된다.
-s 옵션을 하면 심볼릭 링크가 되고 없으면 하드링크가 된다.
이제 ls-ali로 본다.
-i옵션은 i-node를 보여준다.
보면 level5.tmp -> s로 심볼릭 링크가 되어졌다.
이제 cd /usr/bin으로 들어가서
./level5를 실행한 후에
cd /tmp로 들어가
cat s로 s파일을 열어본다.
next password : .......................................
다음 패스워드가 쓰여져 있다!!
'모각코' 카테고리의 다른 글
| 모각코 1월 10일 (0) | 2019.01.10 |
|---|---|
| ftz level6 (0) | 2019.01.08 |
| 모각코 1월 8일 (0) | 2019.01.08 |
| ftz level4 (0) | 2019.01.03 |
| ftz level3 (0) | 2019.01.03 |
