본문 바로가기

Bandit

Bandit Level 17 -> Level 18

해당 게시글은 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