Bandit Wargame 풀이 기록입니다.
1. 문제 목표 및 접속 정보
목표
Git 저장소에 파일을 추가하고 원격 저장소로 push하여,서버 측에서 검증을 거쳐 다음 레벨 비밀번호를 획득한다.
단, .gitignore 설정으로 인해 특정 파일이 기본적으로 추적되지 않으므로이를 인지하고 올바른 방식으로 처리해야 한다.
- 접속 정보
- Host:
bandit.labs.overthewire.org - Port:
2220 - User:
bandit30 - Password:
qp30ex3VLz5MDG1n91YowTv4Q8l7CDZL
- Host:
ssh bandit30@bandit.labs.overthewire.org -p 2220
2. 풀이 과정
Git 저장소 클론
로컬 환경에서 Git 저장소를 클론했다.
git clone ssh://bandit29-git@bandit.labs.overthewire.org:2220/home/bandit29-git/repo
클론 후 저장소로 이동했다.
cd repo
ls
README.mdREADME 확인
cat README.md
# Bandit Notes
Some notes for bandit30 of bandit.
## credentials
- username: bandit30
- password: <no passwords in production!>기본 브랜치(master)에는 비밀번호가 없다.
Git 커밋 이력 확인
git log
commit b879c94bd4641ebb8b5470258b3a41debb25f7c2
fix username
commit 358fb1e671f460043ff5bd372e8d87e228dc148d
initial commit of README.md커밋 내용을 git show로 확인했지만,
비밀번호와 관련된 정보는 나오지 않았다.
다른 접근 필요성 인식
여기까지 확인한 결과,
- 파일 내용 ❌
- 커밋 히스토리 ❌
이 문제는 Git의 다른 기능을 사용해야 하는 문제라고 판단했다.
Git을 팀 단위로 사용할 때 자주 쓰는 기능인
브랜치(branch) 가 떠올랐다.
원격 브랜치 확인
git branch -r
origin/HEAD -> origin/master
origin/dev
origin/master
origin/sploits-dev기본 브랜치 외에 dev, sploits-dev 브랜치가 존재했다.
dev 브랜치로 이동
먼저 dev 브랜치로 이동했다.
git checkout dev
branch 'dev' set up to track 'origin/dev'.
Switched to a new branch 'dev'파일 구조를 확인했다.
ls
code README.mddev 브랜치 README 확인
cat README.md
# Bandit Notes
Some notes for bandit30 of bandit.
## credentials
- username: bandit30
- password: qp30ex3VLz5MDG1n91YowTv4Q8l7CDZLdev 브랜치의 README 파일에서
다음 레벨 비밀번호를 확인할 수 있었다.
3. Level [31] 비밀번호 (Flag) 획득
기본 브랜치가 아닌 개발용 브랜치(dev) 에 남아 있던
README 파일을 확인하여 플래그를 획득했다.
[fb5S2xb7bRyFmAvQYQGEqsbhVyJqhnDy]
4. 핵심 명령어 및 개념
git branch -r- 원격 저장소의 브랜치 목록을 확인
- 이번 레벨의 핵심 명령어
git checkout <branch>- 다른 브랜치로 이동
- 브랜치마다 파일 내용이 다를 수 있다
- Git 브랜치와 보안
- 메인 브랜치에서 지웠다고 끝이 아니다
- 개발 브랜치에 민감한 정보가 남아 있을 수 있다
한 줄 정리
Git에서는 브랜치도 보안 관리 대상이다.
사용하지 않는 개발 브랜치 하나가 정보 유출의 원인이 될 수 있다.
2025 리눅스 성장기 [Wargame] Bandit Level 30 → Level 31
Bandit Wargame 풀이 기록입니다.
1. 문제 목표 및 접속 정보
목표
Git 저장소에서 태그(tag) 에 숨겨진
다음 레벨 비밀번호를 찾아낸다.
접속 정보
- Host:
bandit.labs.overthewire.org - Port:
2220 - User:
bandit30 - Password:
qp30ex3VLz5MDG1n91YowTv4Q8l7CDZL
- Host:
ssh bandit30@bandit.labs.overthewire.org -p 2220
2. 풀이 과정 (가이드)
Git 저장소 클론
이제 Git 레벨 패턴이 익숙해졌으니,
처음부터 로컬 환경에서 저장소를 클론한다.
❯ git clone ssh://bandit30-git@bandit.labs.overthewire.org:2220/home/bandit30-git/repo
❯ cd repo
❯ ls
README.md
❯ cat README.md
just an epmty file... muahaha
보통 README 하나만 보일 가능성이 크다.
README 확인
여기서도 바로 비밀번호는 안 나오는 게 정상이다.
커밋 히스토리 확인 (습관)
❯ git log
commit d604df2303c973b8e0565c60e4c29d3801445299 (HEAD -> master, origin/master, origin/HEAD)
Author: Ben Dover <noone@overthewire.org>
Date: Tue Oct 14 09:26:28 2025 +0000
initial commit of README.md
→ 다음 단계로 바로 넘어가는 게 포인트
태그 확인 (이번 레벨의 핵심)
이번 레벨의 핵심은 브랜치도, 커밋도 아닌 태그(tag) 다.
❯ git tag
secret
여기서 태그가 하나 이상 보일 것이다.
태그 내용 확인
태그가 보이면 바로 확인한다.
❯ git show secret
fb5S2xb7bRyFmAvQYQGEqsbhVyJqhnDy
3. Level [31] 비밀번호 (Flag) 획득
Git 브랜치나 커밋이 아닌,
태그에 남아 있던 릴리즈 정보를 확인하여 다음 레벨 비밀번호를 획득했다.
[fb5S2xb7bRyFmAvQYQGEqsbhVyJqhnDy]
4. 핵심 명령어 및 개념
git tag- 저장소에 존재하는 태그 목록 확인
- 이번 레벨의 핵심
git show <tag>- 태그가 가리키는 커밋과 메시지, 파일 변경 내용 확인
- Git 태그와 보안
- 태그는 “읽기 전용 스냅샷”처럼 취급되는 경우가 많음
- 그래서 오히려 보안 점검에서 빠지기 쉽다
한 줄 정리
Git에서는 태그도 브랜치만큼 위험할 수 있다.
릴리즈용으로 붙여둔 태그 하나가 정보 유출의 원인이 된다.