| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- cert
- 해킹
- 보안 스터디
- 해킹 스터디
- SoC
- TryHackMe
- 리눅스 기초
- 모의해킹
- http
- Blue Team
- Cyber Security
- 워게임
- XSS
- Bandit
- 블루팀
- 보안 관제
- web hacking
- IR
- 리눅스
- 정보보안
- THM
- 사이버 보안
- Web
- 해커
- OverTheWire
- CTF
- linux
- 정보보호
- Cross-Site Scripting
- write-up
- Today
- Total
AnbyMata의 해킹 노트
[Bandit] Level 9 → Level 10 본문
OverTheWire - Bandit : Level 9 → Level 10. Write-up!
출처: https://overthewire.org/wargames/bandit/bandit10.html
OverTheWire: Level Goal
We're hackers, and we are good-looking. We are the 1%. <!-- Please read and accept the Rules! --> Level Goal The password for the next level is stored in the file data.txt in one of the few human-readable strings, preceded by several ‘=’ characters. Co
overthewire.org
시작을 위해 "ssh -p 2220 bandit9@bandit.labs.overthewire.org"로 ssh 로그인합니다!
( 비밀번호: Level 8 → Level 9 에서 얻은 비밀번호 )
[1] 문제 요약
다음 레벨의 비밀번호는 data.txt 파일 안에 있습니다.
data.txt 파일 내에서 사람이 읽을 수 있는 (human-readable) 문자열 (string) 중 하나에 들어있습니다.
그 문자열은 여러 개의 ` = ` 문자 뒤에 붙어있습니다.
[2] 사용되는 명령어들
- man : 리눅스 명령어의 메뉴얼 (사용법, 옵션, 설명)
- grep : 파일 또는 입력 내용에서 특정 문자열(패턴)을 필터링
- sort : 입력된 내용을 줄 단위로 정렬
- uniq : 연속된 중복 행을 제거 or 중복 여부를 분석
- strings : binary 파일에서 읽을 수 있는 문자열만 추출 (human-readable 문자열만)
- base64 : 데이터를 Base64 형식으로 인코딩 또는 디코딩
- tr : 입력 문자의 치환, 삭제, 대소문자 변환 등을 수행
- tar : 여러 파일/디렉토리를 하나의 아카이브로 묶거나 해제
- gzip : 파일을 gzip 형식으로 압축 또는 해제
- bzip2 : 파일을 bzip2 형식으로 압축 또는 해제
- xxd : 파일을 16진수(hex) 덤프 형태로 출력하거나 복원
[3] 문제 접근 과정
1) 디렉토리와 파일 목록 파악
- `ls -a`로 숨겨진 디렉토리/파일 목록까지 확인합니다.

= 홈 디렉토리 안에 data.txt 파일이 있음을 확인했습니다.
2) cat 명령어로 data.txt 파일 열어보기

= 글자들이 다 깨져버리는 모습입니다.
→ strings 명령어를 사용하여 읽을 수 있는 문자들만 추출해야될 것 같습니다.
3) strings 명령어로 읽을 수 있는 문자열들만 추출하기

= 읽을 수 있는 문자열들만 추출된 모습입니다.
4) 파일 내용 분석해보기

= "====== password" 같은 부분처럼 "="이 들어간 문자열의 구분이 쉬운 편이고, 파일 내용도 생각보다 길지 않아서 이 상태에서 충분히 비밀번호를 찾을 수 있을 것 같기도 합니다.
→ 하지만, 굉장히 깔끔하게 "="이 들어간 문자열들만 필터링하여 추출하면 더 쉽게 다음 레벨의 비밀번호를 찾을 수 있을 것입니다.
5) 더 쉽게 비밀번호를 찾아낼 방법들
- 여러 개의 "="이 들어간 줄들이라 했으니 "==" 로 필터링하는 것이 더 효과적일 것 같습니다.
- 1. grep 명령어를 사용하여 "=="이 들어간 문자열들만을 추출하기
- 2. vi 편집기를 사용하여 "=="이 들어간 문자열들만 확인하기
[4] 문제 풀이 및 분석
1) find 명령어로 data.txt 파일이 위치한 경로 찾기
- find 명령어에서 홈 디렉토리 ( . )를 탐색 경로로 지정했습니다.
- "-name data.txt" 옵션을 통해 파일 이름이 data.txt인 파일을 찾습니다.

= data.txt 파일이 위치한 경로는 "./data.txt"입니다.
= 즉, 홈 디렉토리 ( . ) 안에 바로 존재합니다.
2) cat 명령어로 data.txt 파일의 내용 확인
- data.txt 파일의 내용을 한 번 확인해봅니다.

= 아까 확인했듯이 문자들이 다 깨지고, 일일이 찾아서 비밀번호를 찾기엔 힘들어보입니다.
[4-1] grep 명령어를 사용한 문자열 필터링
3) strings 명령어에 grep로 data.txt 파일에서 "=="이 포함된 줄만 출력하기

= data.txt 파일 내에 있던 비밀번호 획득!
= 내가 필터링한 문자가 빨간색으로 출력되면서 "==" 옆에 있던 비밀번호가 같이 출력되었습니다.
[4-2] vi 편집기를 활용하여 비밀번호 찾기
3) data.txt 파일을 vi 편집기로 열기

4) vi 편집기 내에서 "==" 문자열 검색
- vi 편집기에서 "/==" 를 입력하여 "==" 문자열이 있는 위치로 화면이 이동합니다.
- ':q' 를 입력하면 vi 편집기에서 나올 수 있습니다.

5) 키보드에서 `n`키를 눌러가며 다음 "==" 문자열로 이동하기
- vi 편집기에서 `n`키를 누르면 다음 검색 결과로 이동합니다.
- vi 편집기에서 `N`키를 누르면 이전 검색 결과로 이동합니다.
- vi 편집기에서 검색을 할 때, 찾는 문자열을 입력하고 Enter 키를 눌러야 `n`키를 눌렀을 때, 다음 검색 결과로 이동합니다.

= 계속 누르다보면, "=="이 있는 다음 검색 결과로 이동합니다.
5) 다음 레벨 비밀번호 찾아내기
- `n`키를 계속 눌러가며 비밀번호를 찾아냅니다.

= data.txt 파일 내에 있던 비밀번호 획득!
bandit 비밀번호는 반드시 따로 복사해서 저장해두기! (메모장 등으로)
[Bandit] Level 9 → Level 10. Clear.
[Bandit] Level 10 → Level 11. Continue...
https://anbymata.tistory.com/54
[Bandit] Level 10 → Level 11
OverTheWire - Bandit : Level 10 → Level 11. Write-up!출처: https://overthewire.org/wargames/bandit/bandit11.html Level Goal The password for the next level is stored in the file data.txt, which contains base64 encoded data Commands you may need to solv
anbymata.tistory.com
'OverTheWire > Bandit' 카테고리의 다른 글
| [Bandit] Level 11 → Level 12 (0) | 2026.03.14 |
|---|---|
| [Bandit] Level 10 → Level 11 (0) | 2026.02.17 |
| [Bandit] Level 8 → Level 9 (0) | 2026.02.10 |
| [Bandit] Level 7 → Level 8 (0) | 2026.02.09 |
| [Bandit] Level 6 → Level 7 (1) | 2026.02.06 |