해커스쿨 ftz level5
레벨이 갈수록 어려워진다
앞서 말하자면, 이번 레벨은 심볼릭링크를 이용한 해킹이다.
뭔가 가로챈다는 느낌이 실제 해킹과 비슷해서 이제부터 슬슬 고난도 문제들이 나올거란 느낌이..
아, 그리고 이번 글은 주인장이 뭔가 세팅을 잘못해서 사진이 별로 없다.
대신 죄다 글로 끄적거릴건데, 솔직히 내 자신 빼고는 그거 이해하는 사람 얼마 없을듯
알빠야 어차피 정리용인데!
cat hint(이제 귀찮다 뭐라 쓰기가
힌트의 내용은 저래저래했고, /usr/bin 디렉토리에서 ./level5로 명령을 실행해본다.
cd /tmp로 tmp 파일로 이동한 뒤, ls level5.tmp 명령을 실행하면 level5.tmp 파일은 임시파일이므로
/usr/bin 의 ./level5 명령을 실행해도 우리 눈엔 보이지 않
아야 되는데
..?
...;;;
상황은..
주인장이 글쓰기에 앞서 타 블로그에서 본 내용을 모방하여 실험한 내용(/tmp/b 파일을 생성한 뒤에, b 파일을 level5.tmp 파일에 심볼릭 링크를 거는..)이 putty 를 종료한 이후에도 초기화되지 않고 그대로 남아 있던 것이다
뭐 다 그런건지는 모르겠는데, 이러면 글을 제대로 쓸 수가 없잖아
그래서 putty 빡종하고 죄다 글로 설명해보겠다
필력의 중요성을 깨닫게 해드림
3번째 그림부터 설명을 잇겠다
원래대로라면 ls level5.tmp 명령을 실행시켰을 때 아무것도 나오면 안 되거나, 어쨌든 tmp 파일에는 level5.tmp 파일이 있으면 안된다.
그럼 생각해보자.
/usr/bin 의 ./level5 명령이 /tmp 의 level5.tmp 파일을 임시로 생성시켰다가 프로그램 종료 직전에 삭제하는거라카더라
거라면 심볼릭링크를 이용해서 이 ./level5 명령이 실행될 동안 level5.tmp 파일에 쓰여지는 내용을 엿보면 된다.
좋다, 그럼 심볼릭링크는 뭐고, 이제 그걸 어떻게 만드냐.. 가 문제다.
솔직히 그거 다 설명하자면 이 늦은 밤에 기계식키보드 타건소리가 집안에 오지게 울릴것이므로 간단하게 설명해본다
심볼릭링크는 절대/상대 경로의 형태로 된 다른 파일/디렉토리에 대한 참조를 포함하는 특별한 파일이다.
그냥 이 레벨에서 쓰는 용도를 말하자면 a 파일의 심볼릭링크로 b 파일을 지정하면 a 파일의 내용 그대로 b 파일의 내용이 되는 것이다(는, 사실 주인장의 말대로 표현한 것이니 무조건 신뢰는 금물이다)
그래서 심볼릭링크를 지정하는 방법은, 여기서는 형태가 ln -s (대상경로) (링크경로) 이다.
지정하고자 하는 대상이 파일 b이고, 링크로 삼고자 하는 대상이 파일 level5.tmp 이므로
ln -s b level5.tmp 식으로 써주면 된다. (아, 물론 그 전에 b 파일을 /tmp 에서 touch b 명령으로 만들어놔야 한다. 없는 파일을 대상으로 링크할 수는 없잖니)
그러면 b 파일은 level5.tmp 파일의 심볼릭링크로 지정된 것이다.
거의 다 왔다. 고로, 다시 /usr/bin 에서 ./level5 명령을 친다면 level5.tmp 파일의 내용이 그대로 b 파일에 복붙될 것이니까 우리는 b 파일을 실행시키면 된다.
실행 방법은? cat b 였지?
그러면 위 마지막 사진처럼 비번이 나온다. 좋은 건 공유해야 하니까 가리지 않겠다.
이상, 2019.3.1
대한독립만세!