해킹&보안

[반딧 워게임 : OverTheWire] Level 30-> 31 (리눅스/해킹/보안 공부)

yamaeking 2025. 3. 23. 14:57

자 오늘은 Level 30 -> 31을 해보도록 하겠다. 

(Login ID :  bandit30/  Password : qp30ex3VLz5MDG1n91YowTv4Q8l7CDZL

 

1. 문제 내용

https://overthewire.org/wargames/bandit/bandit31.html

 

OverTheWire: Level Goal

We're hackers, and we are good-looking. We are the 1%. <!-- Please read and accept the Rules! --> Level Goal There is a git repository at ssh://bandit30-git@localhost/home/bandit30-git/repo via the port 2220. The password for the user bandit30-git is the s

overthewire.org

 

> 앞 문제들과 똑같이 깃 저장소 클론해서 다음 레벨의 비밀번호를 찾아보라 한다ㄱㄱ

2. 문제 풀이

> 아래 명령어들을 통해 tmp 밑에 임의의 디렉토리 하나 만들고, 거기에 git repo 를 복사해오도록 하자.

mkdir /tmp/b30Git
cd /tmp/b30Git
GIT_SSH_COMMAND="ssh -p 2220" git clone ssh://bandit30-git@localhost/home/bandit30-git/repo

 

 

복사한 뒤 repo 디렉토리로 이동하여 README 를 읽어보니 빈 파일임 무하하 라고 한다. log 들을 체크하여 커밋들 상태를 살펴보도록 하자.

 

git log --all --oneline   //지워진 커밋 등도 포함하여 로그 확인

 

 지워진 커밋도 없는 것 같고, acfc3c6 의 커밋 하나만 존재하는 것으로 보인다. 그러면 이 git 에서 참조하고 있는 것들이 있나 살펴보자.

git show-ref   //참조하고 있는 것들을 보여줌

딱 봐도 뭐가 있을 것 같은 refs/tags/secret 이라는 태그값이 보인다.

태그라는 것은 특정 커밋이나 오브젝트를 가리키는 것인데 일단 84368f3a7ee06ac993ed579e34b8bd144afad351 이 녀석이 뭐 하는 녀석인지를 확인해보자.

 

 

git cat-file -t 84368f3a7ee06ac993ed579e34b8bd144afad351

 

git cat-file -t 을 타입을 확인하여 보니 blob (데이터를 Binary Large Object) 타입으로 확인이 되었다.

참고로 git 에서는 파일 데이터를 그대로 저장하지 않고 저렇게 blob objects 로 변환하여 저장한다. 깃에서는 총 4개의 오브젝트가 있으며 내용은 아래와 같다.

오브젝트 타입 설명
blob 파일의 실제 내용 (텍스트, 이미지 등 모든 파일 데이터)
tree 디렉터리 구조 (파일과 폴더 목록, blob/tress를 가짐)
commit 커밋 정보 (변경 사항, 부모 커밋, 메시지, 트리 정보 포함)
tag 태그 (특정 커밋 또는 오브젝트를 가리키는 참조)

 

blob 파일이니까 git show 를 통해 무슨 내용인지 확인해 보면,,짜잔! 비밀번호를 획득하였다!

 

 

 

3. 요약

☞ git show-ref 를 통해 git 에서 참조하고 있는 것들을 살펴볼 수 있다!