반응형

재미로하는 공부/Bandit 13

Bandit Level 11 → Level 12 (Rot13)

문제를 풀기 전에 Rot13에 대한 위키백과를 한번 추천드립니다. 해결 방법을 찾지 못하다가 위키백과를 통해서 한 번에 해결했습니다. ROT13 - Wikipedia Simple encryption method ROT13 replaces each letter by its partner 13 characters further along the alphabet. For example, HELLO becomes URYYB (or, conversely, URYYB becomes HELLO again). ROT13 ("rotate by 13 places", sometimes hyphenated ROT-13) is a simpl en.wikipedia.org 모든 소문자(az) 및 대문자(AZ)가 13자리 회전되었..

Bandit Level 10 → Level 11 (base64 data.txt)

전 단계 암호입니다. ssh -p2220 bandit9@bandit.labs.overthewire.org truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk 문제를 잠깐 읽어보면 base64 인코딩이 되어 있는 데이터라는 말이 보입니다. data.txt를 base64 디코딩을 해주면 되는 문제 같습니다. 문제의 data.txt 파일을 cat으로 확인 시 인코딩이 되어 있는 데이터 값이 보입니다. #base64 --decode 명령어를 통해서 data.txt를 디코딩을 해주시면 간단하게 패스워드를 얻어낼 수 있습니다.

Bandit Level 9 → Level 10 (strings & grep)

문제를 처음 봤을 때 패스워드 앞에는 "===="이 반복되는 거랑 strings 명령어를 사용해야 할 거 같았습니다. 우선 data.txt의 파일을 확인 저번에는 정렬로 난잡하게 만들어 두더니 이번에는 진짜 혼돈의 파일로 만들어 두었습니다. 우선 기존의 grep "="를 하면 명령어가 안 먹습니다. grep -a 옵션을 사용해서 바이너리 파일을 텍스트 형태로 처리가 가능합니다. 이런 식으로 명령어를 입력을 해도 중간에서 패스워드 값은 찾을 수 있지만 너무 복잡하게 출력이 됩니다. 기존 앞에서 언급한 strings 명령어를 통해서 | grep "===" 정도를 입력을 해주시면 아래 사진과 같이 쉽게 패스워드를 찾을 수 있습니다. strings 명령어는 공부를 해서 알았는데 grep 명령어 중에 -a 옵션이..

Bandit Level 8 → Level 9 (stored in the file data.txt)

문제를 먼저 확인하겠습니다. data.txt라는 파일을 중복을 제거해서 비밀번호를 찾으라는 문제 같습니다. 먼저 bandit8 ssh에서 $ls -la를 하면 문제에서 제시한 data.txt 파일이 있는 것을 확인 sort명령어를 통해서 먼저 해당 파일을 열어 보도록 하겠습니다. 너무 난잡하게 출력이 되는데 리눅스 명령어 중에 중복을 제거해주는 명령어 uniq를 사용하면 쉽게 비밀번호를 찾을 수 있습니다. cat data.txt | sort | uniq -u uniq -u 옵션은 중복되지 않는 라인만 표시 uniq -c | grep "1"를 통해서도 답을 얻을 수 있는데 몇 가지 옵션을 사용해 보니 -u옵션이 제일 편하고 쉬웠습니다.

Bandit Level 7 → Level 8 (millionth data.txt)

문제를 자세히 읽어봐야 할거 같습니다. 30분이라는 시간을 가져다가 버린 거 같습니다.. ㅠ data.txt안에 millionth라는 문자열 라인에 다음 단계의 비밀번호가 있다는 거 같습니다. 문제를 접하기 전에 cat명령어로 data.txt가 어떻게 이루어져 있는지 확인을 해봤습니다. 대충 보시면 [특정 문자열] [패스워드] 형태로 이루어져 있습니다. grep 명령어를 통해서 millionth 문자열을 찾아내면 쉽게 풀 수 있습니다. grep "millionth" data.txt를 통해서 먼저 찾았고 grep -w 옵션을 사용해서 찾았습니다.

반응형