
해설)
ssh://bandit29-git@localhost/home/bandit29-git/repo 에 깃 저장소가 있다. 내용은 저번과 같다.
다음 레벨로 가기 위한 패스워드를 찾아라.
저번과 같이, bandit29 디렉토리를 만들고 git을 복사한다.

repo로 이동해, README.md를 읽어준다.


패스워드가 없다고 나온다.
수정이력을 보자.


패스워드는 수정된 이력이 없다고 나온다.
다른 작업 공간이 있는지 branch를 통해 알아보자.
branch란?
A라는 사람이 Git에 저장된 파일을 수정하는 동안, B라는 사람도 Git에 저장된 파일을 수정하는 경우가 생긴다. 이 때, 이들이 서로의 작업에 영향을 미치지 않도록 하기 위해 각각의 작업 영역을 만들어주는 기능이 바로 브랜치(Branch)이다.
브랜치로 각자의 작업영역을 분리한 뒤에 각자 작업을 실행하고, 작업이 완료되었을 때 다시 하나로 합쳐서(Merge) 하나의 브랜치로 만들어 줄 수 있다. 이 때, 만약 A가 작업을 마치고 메인 브랜치와 병합해서 자신의 결과물을 저장시켰는데, B라는 사람이 그 후에 작업을 완료하고 메인 브랜치와 병합해서 결과를 덮어씌우면 A의 작업 내용이 날라가게 된다.
이러한 경우를 방지하기 위해서 결과물이 업로드 될 때마다 commit을 부여하는 것이다.
현재 git에 존재하는 모든 작업공간을 확인하고, 해당 작업 공간에 접근하는 방법은 다음과 같다.
$ git branch -a : 브랜치에 존재하는 모든 작업공간을 출력한다.
$ git checkout [작업공간] : 해당 작업공간에 접근한다.

dev, master, sploits-dev 이렇게 3개의 branch가 존재하며, 현재 master를 사용 중이다.
git checkout 명령어로 remotes/origin/dev 의 공간에 접근하자.

HEAD가 dev로 설정이 된 것을 확인할 수 있다.
이제 git log로 수정이력을 다시 살펴보자.

commit들이 더 추가되었다.
맨 위의 bc8332... 를 보자.

원래의 패스워드가 나온다.
5b90576bedb2cc04c86a9e924ce42faf
'해킹 동아리 I.Sly() > 방학 스터디 활동' 카테고리의 다른 글
[bandit] level 31 -> level 32 (0) | 2021.02.24 |
---|---|
[bandit] level 30 -> level 31 (0) | 2021.02.23 |
[bandit] level 28 -> level 29 (0) | 2021.02.22 |
[bandit] level 27 -> level 28 (0) | 2021.02.22 |
[bandit] level 26 -> level 27 (0) | 2021.02.22 |