[2024/bandit] bandit level11 -> level12 Write-up

2024. 11. 18. 10:04· bandit
목차
  1. 프롤로그
  2. 문제
  3. ROT13
  4. tr
  5. 풀이과정
  6. 정답
  7. sed
  8. 에필로그
728x90
반응형

프롤로그

bandit 문제풀이

저번 비밀번호는 dtR173fZKb0RRsDFSGsg2RWnpNVj3qRr 이다.

 

 

문제

다음 레벨로 가는 비밀번호는 data.txt 파일에 저장이 되어있다. 소문자 a-z, 대문자 A-Z까지 단어를 13칸 회전시켜서 만들어졌습니다.

ROT13 기법이니 잘 찾아서 해봐라.

 

 

ROT13

일종의 암호화 기법인데, Rotate by 13의 줄임말이다. 별도의 열쇠값이 없이 영어 알파벳을 13칸씩 밀어내는 방식으로 암호화를 한다.

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
a b c d e f g h i j k l m n o p q r s t u v w x y z
n o p q r s t u v w x y z a b c d e f g h i j k l m

이렇게 a를 1번이라고 했을 때 13칸 뒤의 있는 알파벳은 14번째의 n이다. b는 13칸뒤에있는 o가 선택이 되는 것이다.

 

일종의 카이사르 암호에 키 값을 13개 준거랑 동일한 거라고 하는데,

2024.01.13 - [보안 스터디/암호학] - [암호학] 암호화 해킹 #2 (카이사르 암호 도구 만들기)

 

[암호학] 암호화 해킹 #2 (카이사르 암호 도구 만들기)

프롤로그 아...여기 파트 그냥 노가다라 개귀찮다 카이사르 로마황제 율리우스 카이사르가 만든 암호문으로써, 모든 알파벳 문자를 일정한 크기만큼 이동시키고, 그 문자로 지환하여 만든다. A B

taesan-smj.tistory.com

여기에 카이사르에 대한 간단한 얘기가 들어있다.

아무튼 요약하면 13칸 뒤로 밀어서 만든 기법!

 

 

tr

리눅스에서는 tr이라는 명령어가 있다.

텍스트 변환 및 문자 치환을 수행하는 유용한 명령어인데, 텍스트 내에서 특정 문자를 다른 문자로 바꾸거나, 특정 문자를 삭제할 때 사용한다.

사용법은

tr [옵션] [set1] [set2]

set1을 set2로 바꾼다는 의미이다. 아 그러면 set1과 set2에 정규표현식이 적용이 되나?

예를 들어서 tr ^h*llo$ HELLO 하면 바뀌나?

안 된다. 음음... 저긴 정규표현식 지원 안 한다.

그래서 예시를 들자면

echo "hello world" | tr 'a-z' 'A-Z'

이렇게 소문자들이 대문자로 치환이 되었다.

 

 

풀이과정

일단 접속부터 하자

ssh bandit11@bandit.labs.overthewire.org -p 2220
dtR173fZKb0RRsDFSGsg2RWnpNVj3qRr
ls

data.txt 파일이 있고 읽어보면

cat data.txt

대충 The password is ....뭐시기겠지? 이제 tr을 통해서 단어들을 치환해보자.

cat data.txt | tr 'a-zA-Z' 'n-zA-Za-m'

13칸씩 미뤄서 a는 n으로 바뀌니 여기가 시작이 되겠고, 그 다음 쭉 순서대로 n-zA-Za-m으로 넘겨주었다.

정답이 나왔다. 뭔가 이상하다.

그래서 실제 저 비밀번호로 접속하면 답이 틀리다고 나온다.

원인을 알아보니, 소문자가 13칸 밀려서 대문자가 되고, 대문자가 13칸 밀려서 소문자가 되고 이런일은 없어야할 것 같다. 그러니까 set2의 범위를 다시 설정해주자.

cat data.txt | tr 'a-zA-Z' 'n-za-mN-ZA-M'

정답이 잘 나왔다.

물론 저거 순서 바꿔도 잘 나올 것이다.

cat data.txt | tr 'A-Za-z' 'N-ZA-Mn-za-m'

 

 

정답

비밀번호는 7x16WNeHIi5YkIhWsfFIqoognUTyj9Q4  이다.

 

 

sed

sed가 저번에도 나왔다. 

2024.11.10 - [bandit] - [2024/bandit] bandit level7 -> level8 Write-up

 

[2024/bandit] bandit level7 -> level8 Write-up

프롤로그bandit 문제풀이저번 비밀번호는 morbNTDkSW6jIlUc0ymOdMaLnOlFVAaj 였다grep, sed 문제다음 레벨로 가는 비밀번호는 data.txt에 저장되어 있는데, 비밀번호는 millionth 단어 뒤에 있습니다.  grep텍스

taesan-smj.tistory.com

파일이나 텍스트 스트림을 한 줄씩 처리하여 편집할 수 있는 강력한 명령어.. 주로 텍스트 조작, 변환, 삭제 작업에 사용되며, 파일을 수정하거나 표준 입력으로 받은 데이터를 처리할 수 있다.

라고 언급하였는데, "텍스트 조작" 이 보이는가?

 

아까 말했듯이 

tr은 정규표현식을 지원하지 않는다. 근데 정규표현식으로 단어 단위로 치환하고 싶다면 그떄도 sed를 이용한다.

sed 's/패턴/치환할문자열/옵션'

이렇게 되어 있는데

echo "hello world" | sed 's/hello/Hello/'

이렇게 치환이 이뤄진다. 

echo "hello world, hello universe" | sed 's/hello/Hello/'
echo "hello world, hello universe" | sed 's/hello/Hello/g'

위 명령어 차이 구분해보자. 맨 뒤에 g가 붙은 것 뿐이다. g가 붙지 않았으면 일치하는 거 맨 앞에거 하나만 치환하는데, global 약자인 g로 전체 다 치환가능하다.

 

 

에필로그

어렵네

728x90
반응형
저작자표시 비영리 (새창열림)

'bandit' 카테고리의 다른 글

[2024/bandit] bandit level13 -> level14 Write-up  (0) 2024.11.26
[2024/bandit] bandit level12 -> level13 Write-up  (2) 2024.11.22
[2024/bandit] bandit level10 -> level11 Write-up  (2) 2024.11.16
[2024/bandit] bandit level9 -> level10 Write-up  (0) 2024.11.10
[2024/bandit] bandit level8 -> level9 Write-up  (0) 2024.11.10
  1. 프롤로그
  2. 문제
  3. ROT13
  4. tr
  5. 풀이과정
  6. 정답
  7. sed
  8. 에필로그
'bandit' 카테고리의 다른 글
  • [2024/bandit] bandit level13 -> level14 Write-up
  • [2024/bandit] bandit level12 -> level13 Write-up
  • [2024/bandit] bandit level10 -> level11 Write-up
  • [2024/bandit] bandit level9 -> level10 Write-up
성밍쟁
성밍쟁
성밍쟁 공붕방
너드인의 밤성밍쟁 공붕방
성밍쟁
너드인의 밤
성밍쟁
전체
오늘
어제
  • 분류 전체보기 (182)
    • 일상 (1)
    • 스펙업 (7)
      • 학회 (0)
      • 멋쟁이사자처럼 (2)
      • 2024 winter-study (5)
    • 코딩테스트 - 백준 (9)
    • 보안 스터디 (56)
      • 시스템 해킹 (10)
      • 리버스 엔지니어링 (0)
      • 웹 해킹 (38)
      • 암호학 (8)
    • bandit (15)
    • 웹 개발 (11)
    • 머신러닝 (0)
    • 데이터베이스 (9)
    • KnockOn (72)
    • DevOps (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 드림핵
  • /bin
  • 1074
  • 11656
  • 1193
  • 2563
  • 3Des
  • 9613
  • AES
  • Alias

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
성밍쟁
[2024/bandit] bandit level11 -> level12 Write-up
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.