일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 웹해킹
- arp
- RSA Common Modulas Attack
- dreamhack
- dns
- XSS
- cryptography
- weak key
- overthewire
- 드림핵
- CSRF
- RSA
- Crypto
- picoCTF
- OverTheWire Bandit Level 1 → Level 2
- 시스템해킹
- Franklin-Reiter Related Message Attack
- AES
- return address overflow
- rao
- shellcode
- Bandit Level 1 → Level 2
- Cube Root Attack
- redirect
- bandit
- Hastad
- spoofing
- 암호학
- Montgomery Reduction
- pycrpytodome
- Today
- Total
암호(수학) 등.. 공부한 거 잊을거 같아서 만든 블로그
OverTheWire Bandit Level 8 → Level 9 풀이 본문
문제
다음 단계의 암호는 data.txt 파일에 저장되며 한 번만 발생하는 유일한 텍스트 행입니다.
풀이
cat명령어를 통해 data.txt의 내용을 확인해보니 문자열이 한줄마다 하나씩 있는 것을 볼 수 있다.
문제에서 암호는 파일의 문자열중 중복되지 않는 유일한 문자열 이라고 했으므로 uniq명령어와 파이프를 이용하여 명령어를 입력해 봤는데 전과 차이가 없다.
cat data.txt | uniq -c 에서 | 는 파이프라고 하는 것인데 cat data.txt의 출력 값을 uniq 명령어의 입력으로 넣으라는 의미이다. ( a | b : a의 출력 값을 b의 입력으로 )
uniq 명령어는 중복된 문자열을 제거해주는 명령어이다. -c 옵션은 중복된 횟수를 나타내어 출력해준다.
uniq [OPTION] [ INPUT [OUTPUT] ]
분명 중복되는 문자열이 있을 것인데 왜 중복이 제거가 안되는지 찾아보니 uniq명령어는 연속된 행에 대해서만 중복을 제거하기 때문에 문자열이 뒤죽박죽 섞여있는 data.txt파일에서의 중복을 찾지 못하는 것이였다.
따라서 sort라는 명령어를 이용하여 data.txt 파일의 내용을 정렬을 해서 같은 문자열은 연속된 행으로 묶어주어야 한다.
data,txt의 내용을 정렬한 값을 uniq명령어에게 전달을 해보면 중복이 없는 문자열이 있을 것이다.
cat data.txt | sort | uniq -c 를 입력해보니 중복되지 않는 문자열인 UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR 가 암호인 것을 알 수 있다.
sort 명령어는 파일의 내용을 정렬해주는 명령어이며 옵션이 없을경우에는 내림차순으로 정렬한다.
sort [OPTION]... [FILE]...
'OverTheWire: Bandit' 카테고리의 다른 글
OverTheWire Bandit Level 10 → Level 11 풀이 (0) | 2022.04.13 |
---|---|
OverTheWire Bandit Level 9 → Level 10 풀이 (0) | 2022.04.13 |
OverTheWire Bandit Level 7 → Level 8 풀이 (0) | 2022.04.13 |
OverTheWire Bandit Level 6 → Level 7 풀이 (0) | 2022.04.07 |
OverTheWire Bandit Level 5 → Level 6 풀이 (0) | 2022.04.07 |