나머지 문제들도 전부 git과 관련된 문제들입니다
힘내서 풀어 봅시다!
Bandit Level 29 → Level 30 문제 풀이
ssh bandit29@bandit.labs.overthewire.org -p 2220
password : tQKvmcwNYcFS6vmPHIUSI3ShmsrQZK8S
Bandit Level 29 → Level 30 문제도 이전 문제와 동일합니다
임의의 디렉터리를 생성 후 git 명령어를 이용하여 ssh://bandit29-git@localhost:2220/home/bandit29-git/repo 저장소를 복제해 주세요 그다음 repo 디렉터리 안에 README.md 파일을 읽어보니 프로덕션 안에 패스워드가 없다고 나옵니다
패스워드를 찾기 위해 커밋 로그를 확인해 보니 별다른 문제가 없습니다
그래서 branch 명령어를 이용했습니다 branch(브랜치)란 독립적으로 어떤 작업을 진행하기 위한 개념입니다 생성된 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있습니다.
사진과 같이 dev, master, sploits-dev 브랜치가 있습니다
그다음 git checkout 명령어를 이용하여 dev 브랜치로 변경했습니다 이후 README.md 파일을 다시 확인해 보니 bandit30의 패스워드를 획득할 수 있었습니다 (checkout 명령어는 브랜치 간 전환 또는 현재 작업 중인 파일들을 복원할 때 사용됩니다)
Bandit Level 30 → Level 31 문제 풀이
ssh bandit30@bandit.labs.overthewire.org -p 2220
xbhV3HpNGlTIdnjUrdAlPzc2L6y9EOnS
Bandit Level 30 → Level 31 문제도 이전 문제와 동일합니다
ssh://bandit30-git@localhost:2220/home/bandit30-git/repo
저장소 복제 후 파일을 읽어보니 비어있는 파일이라 나옵니다
브랜치와 로그를 살펴봐도 바뀐 모습이 없습니다
누락된 브랜치가 있나 확인해 보니 secret 태그를 찾을 수 있었습니다
git show-ref는 reference를 보는 명령인데, rerference는 branch와 비슷합니다
마지막으로 secret 태그의 커밋을 git show 전달 인자로 넘겨주면 다음 레벨의 패스워드를 획득할 수 있습니다
[ 참고 사이트 ]