김승현

[OverTheWire] Bandit Level 29 → Level 30 본문

Linux/OverTheWire : Bandit

[OverTheWire] Bandit Level 29 → Level 30

kshind 2023. 2. 20. 23:13

문제 

문제 원문

깃 리포지토리가 ssh://bandit29-git@localhost/home/bandit29-git/repo에 있다.

그리고 password는 유저 bandit29의 password와 동일하다고 한다.

저번이랑 내용도 똑같고 진짜로 저번에 생각보다 쉽다고 한 걸 이번엔 진짜로 플래그를 회수시키려는 목적인 것 같다...

 

풀이

(ls -al해도 딱히 힌트가 없는 것 같아서 작성하지 않았습니다)

이번 문제에서도 파일을 만들기 위해 /tmp/bangit이라는 디렉토리를 만들고 해당 디렉토리로 이동했다.

 git clone  ssh://bandit29-git@localhost:2220/home/bandit29-git/repo

문제와 다르게 포트를 지정해줘야 되기 때문에 위와 같이 입력해줬다.


password까지 입력하면 성공적으로 복사가 완료된다.

저번 문제와 동일하게 ls -al 해보니 repo 디렉토리가 있어서 이동해주고 보니까 READ.md라는 파일이 있다. cat 해보자.

README.md 파일에는 이렇게 적혀 있었고 보기 편하게 하면

이렇게 적혀있었다. password가 애초에 만들어질 때 없었다는 뜻 같다. 그렇다면 애초에 이전 커밋들을 봐도 소용 없을 것 같아서 다른 git 명령어들을 더 찾아봤다.

fetch라고 remote 빼고 모두 다 가져오는 명령어가 있어서 해봤는데 그것도 아니었다...

열심히 찾아보던 중 branch라는 걸 알게 됐다!

 

branch : 여러 개발자들이 동시에 다양한 작업을 할 수 있게 만들어 주는 기능 서로 독립적이기 때문에 영향을 주지 않는다.
서로 영향을 주지 않기 때문에 동시에 여러 작업을 할 수 있고 초기 브랜치는 master이다.
git branch -r

위의 명령어를 통해서 현재 git의 branch들을 확인할 수 있다.

총 3개의 branch가 있고 master가 초기의 것이라고 했는데 orgin/HEAD -> orgin/master로 적혀있다.

branch에서 HEAD는 제일 마지막 커밋에 대한 포인터이다.

따라서 지금은 master brabch라는 걸 알 수 있고 dev branch로 해보겠다.

git checkout 명령어를 통해 branch를 변경할 수 있다.

변경 후 ls -al을 하면 README.md가 있는데 이걸 cat 명령어를 사용해서 보면 password를 얻을 수 있다.

 

++++

dev의 repo엔 README.md 말고 code라는 새로운 디렉토리가 생겨서 궁금해서 이동해서 봤더니 python 실행파일 있다.

뭐가 있을까 두근두근하면서 봤는데 아무것도 없는 파일이었다....

 

 


다음 문제

https://kshind.tistory.com/32