🌱초급

[Bandit] Level 8 → Level 9

Bandit Level 8 풀이 과정을 설명합니다.

2분 읽기

문제

Level Goal

The password for the next level is stored in the file data.txt and is the only line of text that occurs only once

data.txt에 오직 한 라인만 작성된 문장을 찾아 password로 사용하면 되는 것 같습니다.


해결

image.png
  • ls -al 명령어를 통해 data.txt 파일을 확인할 수 있습니다.

  • 우선 data.txt 파일을 읽어보도록 하겠습니다.

image.png
  • cat 명령어로 data.txt 파일을 실행해보면 패스워드를 찾기 힘든 형태로 되어 있습니다.

  • 우선 문장들을 정렬해보도록 하겠습니다.

    • 이전 레벨들에서 종종 나왔던, sort 명령어를 활용해보겠습니다.

image.png
  • sort 명령어로 data.txt 파일을 정렬한 결과, 문장들이 중복되어 존재하는 것을 알 수 있습니다.

    • 이 중 중복 없이 존재하는 문장이 패스워드가 되는 것이라는 것을 다시 한 번 이해해볼 수 있겠네요.

  • 그렇다면 중복을 삭제하는 과정이 필요합니다.

    • 리눅스에서는 uniq 명령을 사용할 수 있습니다.

image.png
  • uniq 명령어로 중복된 문장을 삭제하고 출력해보면 패스워드를 획득할 수 있습니다.

    • 이때, sort 명령어를 파이프로 리다이렉션하게 되면, 오름차순 정렬 된 결과를 uniq 명령의 입력으로 넘겨주어 중복된 문장을 삭제할 수 있습니다.


핵심

sort 명령어

  • 텍스트로 된 파일의 내용을 정렬하거나, 정렬된 파일의 내용을 병합할 때 사용

  • sort [option] [file] 의 형태로 사용

  • 옵션 사용x → 오름차순 정렬

  • 두 번째 필드를 기준으로 정렬하고 싶다면 sort +1 [file] 의 형태로 사용

  • 파일에 저장하고 싶은 경우 -o 옵션 사용해 sort [file] -o [저장할 파일명] 의 형태로 사용

image.png

uniq 명령어

  • 중복된 내용 삭제 (전체적으로 분산된 중복은 찾을 수 없음 → 정렬 후 적용해야 함)

  • uniq [option] [file] 형태로 사용

image.png


댓글

이 글이 마음에 드셨다면 반응이나 댓글을 남겨주세요!

댓글을 작성하려면 로그인하세요

로딩 중...
공유
sikk

sikk

Author

보안을 공부하는 개발자입니다. Web2/Web3 보안과 시스템 해킹에 관심이 많습니다.

뉴스레터 구독하기

새로운 포스트가 올라오면 이메일로 알려드려요!