Wargame/bandit

[리눅스] Bandit Level 1 -> Level 2

핏디 2021. 4. 3. 22:01
SMALL

[문제]

문제는 간단하네요.

다음 레벨을 위한 password가 홈디렉토리에 -라는 파일 속에 있다고 얘기하고 있습니다.

바로 열어보도록 하겠습니다--!


[풀이]

ls -al 명령을 통해 - 파일을 확인할 수 있는데요. bandit1으로는 -파일을 읽을 수만 있군요.

바로 읽어볼까요?

그. 런. 데 말입니다

해보셨나요? 

아마 password를 볼 수 없으셨을겁니다..

왜냐고요?

cat - 만 입력하면 입력 대기 상태가 되어버리기 때문이죠!

 

네에~? 무슨 소리냐구요?!

여러분, ssh 와 ls를 사용할 때 -를 사용하신 것 기억나시나요?

바로 옵션에서 -를 사용하는데요!

ssh에서는 포트번호를 옵션으로 입력하기 위해 -p 2220 과 같은 형태로,

ls 에서는 모든 파일과 디렉토리를 보기 위해 -al을 사용했습니다.

 

음.. 그래서 뭐 어떡하냐고요? 성미가 급하시네..

 

즉, 리눅스의 터미널에서 - 를 입력하게 되면 쉘은 사용자가 옵션을 사용한다고 생각해서 옵션을 끝마쳐줄 때까지 기다리게 되는 상황이 펼쳐지게 된답니다!

 

우리가 cat - 을 입력했을 때 대기 상태가 되었던 것이 이러한 이유 때문인거죠!

 

그럼 - 라는 이름을 가진 파일을 읽고 싶을 땐 어떻게 해야할까요?

 

2가지의 방법으로 해결할 수 있습니다.

 

첫 번째는 상대 경로를 이용한다!

두 번째는 절대 경로를 이용한다!

 

2가지 모두 알려드릴게요 ㅎㅎ

상대 경로와 절대 경로에 대한 설명은 [핵심]에서 확인해주세요!

 

 

1. 상대 경로를 통해 확인하는 방법

먼저, 상대 경로를 통해 확인하는 방법인데요!

상대 경로는 현재 위치를 기준으로 경로를 나타내는 만큼 . 을 이용해야 합니다.

 

네에-?

 

. 이 뭐죠?

현재 위치가 홈디렉토리라고 한다면 홈디렉토리를 나타내는 ~에 있다고 하는 것이 아닌, 단순히 . 으로 내 위치를 말해줄 수 있는 것이죠!

다른 디렉토리에 있다고 해도 마찬가지 입니다.

/etc 디렉토리나 /var 등의 디렉토리에 있다고 하더라도 현재 위치를 말할 때는 . 으로 말하게 되는 것이죠.

 

 

현재 위치를 기준으로 경로를 나타낸다?

- 파일은 홈디렉토리에 위치하고 있다고 했죠? 

그렇다면 - 파일은 홈디렉토리 아래(하위)에 위치한다고 말할 수 있습니다.

그런데 현재 우리가 있는 디렉토리 위치는 ~ 인 홈디렉토리 입니다! 

 

현재 우리가 위치한 홈디렉토리 아래에 바로 - 파일이 존재하니,

현재 위치를 나타내는 .과 아래를 나타내는 /를 사용한 후 -파일 이름을 적어주면 되겠죠!

즉, ./- 이렇게 나타내면 현재위치를 기점으로 - 라는 파일을 말하게 되는거죠.

 

 

설명이 장황했지만! cat ./- 이렇게 사용하면 password가 나온답니다 ㅎㅎ

 

 

2. 절대 경로를 통해 확인하는 방법

2번째는 절대 경로를 통해 확인하는 방법인데요!

절대 경로는 모든 경로를 나타내야 합니다.

 

모든 경로....

 

모든 경로라는게 무슨 말이죠?

문제를 예로 들자면, - 파일은 홈디렉토리 하위에 위치한다고 했죠?

그렇다면 홈디렉토리를 시작으로 하여 그 아래에 위치하는 것이니

홈디렉토리를 나타내는 ~ 를 쓰고, 그 아래를 나타내는 /와 하위에 위치한 -파일을 적어주면 되겠죠!

즉, ~/-으로 나타낼 수 있습니다.

 

 

지금은 두 경로 모두 간단해서 비슷해보이지만 절대경로의 경우 엄청 길어질 수도 있다는 점!

그렇지만 상대 경로가 무조건 좋다고도, 절대 경로가 나쁘다고 할 수 없습니다.

상황에 맞게, 자신에게 편한 방법을 사용하는 것이 최선의 선택이겠죠?ㅎㅎㅎ

 

 

 

두 가지 방법을 이용해 password를 구해보았습니다.

이번에도 ~~~~~~~~

성! 공!

 

다음 level에서 만나요~


[핵심]

절대 경로 vs 상대경로

절대경로

> 최상위 디렉토리(/) 부터 시작해서 목표 디렉토리까지 가는 경로를 전부 기술하는 방식

> 항상 맨 앞에 최상위 디렉토리 (/)가 붙음

> !!절대 경로를 통해 경로 이동 시, 현재 위치와 상관 없이 똑같은 명령어 입력해 이동함!!

예) cd /a/b/c/d

상대경로

> 현재 자신이 위치한 곳을 기준으로 이동하는 것

> 현재 자신의 위치를 '.'으로 표기함

> '.' 없이 '/'만 사용할 경우, 최상위 디렉토리를 나타냄

> 이전 디렉토리는 '..'으로 표기함

예1) 현재 /a/b에 위치하고 /c/d로 이동하고자 함

cd ./c/d

예2) 다시 b경로로 이동하고자 함

cd ../../ (d->c , c->b 총 2번이동)

*pwn 명령어 : 현재 디렉토리 위치 확인

 

LIST

'Wargame > bandit' 카테고리의 다른 글

[리눅스] Bandit Level 4 -> Level 5  (0) 2021.04.03
[리눅스] Bandit Level 3 -> Level 4  (0) 2021.04.03
[리눅스] Bandit Level 2 -> Level 3  (0) 2021.04.03
[리눅스] Bandit Level 0 -> 1  (0) 2021.04.03
[리눅스] Bandit Level 0  (0) 2021.04.03