해당 게시글은 bandit wargame에 대한 스포일러(방향성/힌트/정답)를 제공할 수 있습니다.

bandit level 17에서 비밀번호를 얻기 위해
passwords.old 파일에서 passwords.new 파일이 되며 유일하게 바뀐 줄을 찾아야 합니다.

ls 명령어를 이용하여 해당 디렉토리의 항목을 출력하면
비교해야 할 파일들인 passwords.old(기존 비밀번호 포함)와 passwords.new(다음 레벨로 가는 비밀번호 포함)가 있습니다.
diff 명령어를 이용하여 비교할 2개의 파일을 인자로 주면
42C42, 즉 passwords.old의 42번째 줄이 passwords.new의 42번째 줄로 바뀌었다는 내용이 출력됩니다.
(C=change, A=append, D=delete)
쉘 리다이렉션의 <,>와 유사하게
< 는 passwords.old의 삭제된 기존 행을, > 는 passwords.new의 새롭게 추가된 행을 의미하며
---는 첫 번째 파일의 데이터 블록이 종료되고 두 번째 파일의 데이터 블록이 시작됨을 알리는 구분자입니다.

diff passwords.old passwords.new | grep '^>' | awk '{print $2}'
비밀번호가 포함된 행만을 출력하고 싶을 경우,
파이프라인으로 연결하고 grep 명령어를 활용합니다.

-u 옵션을 활용하여 수정 시각, 전후 맥락과 +, -로 표현된 변경 사항을 볼 수 있습니다.
2025년 10월 14일에 수정되었다는 정보와
-로 표시된 문자열이 passwords.old의 문자열이 +가 붙은 문자열이 passwords.new의 문자열로 수정되었다는 정보
앞뒤로 3줄씩 파일의 맥락을 한번에 보여줍니다.
'Bandit' 카테고리의 다른 글
| Bandit Level 19 -> Level 20 (EUID vs RUID?) (0) | 2026.01.13 |
|---|---|
| Bandit Level 18 -> Level 19 (0) | 2026.01.13 |
| Bandit Level 16 -> Level 17 (0) | 2026.01.12 |
| Bandit Level 15 -> Level 16 (openssl?) (1) | 2026.01.12 |
| Bandit Level 14 -> Level 15 (0) | 2026.01.12 |