본문 바로가기

CTF_Write_UP/overthewire

Overthewire : Bandit Level 7 → Level 8

시작

안녕하세요 ! :D

지난 포스팅에 이어서 Level 7 → Level 8 풀어보도록 하겠습니다.

root@goorm:/# ssh bandit7@bandit.labs.overthewire.org -p2220

문제

The password for the next level is stored in the file data.txt next to the word millionth

data.txt 파일 속 millionth 란 단어 옆에 있는 것이 패스워드라고 하네요.

우선 cat으로 파일 내용을 한 번 볼까요?

bandit7@bandit:~$ cat data.txt | more
humiliation's   47r0YuNylaQ3k6HqGF5NsPPiGuolDCjn
malarkey's      0huyJeRwvtJaoyRmJjQFsRnQcYG4gDir
prioress        ocudTlq9CbpCw9aByrqGffAuoYvCmLNV
enlivened       a7zT1gFekL2pB54py3NmJkYluxdAscwO
bony    r5GbTRzr0dsAMEuiBO8sznt0v56nci5z
transatlantic   ttoxcePeynPXWS1fnQTBWtij9uQwbBfJ
earliness       ikmPFX39MF1mrIfRvTMIFnBGyZV3T2Fa
rump's  nFY7k2ua3xfV5oScoBQsPhrwKjeKVwam
rink's  vzsUxoBeDiy7wo7SW1CnXZUYEOIUuoiw
sierras fUB5nuau8pLD55Wi4u6R8x4SDxqBUXfd
councilor       tbgpNSixmunP5A57tv12SLszsVgLt1Mp
pianissimi      lSICjA6MjNPOHvhggDApjtlV43gEAAp4
arc     L6pmar7rU9hPdg7XZmdcpill6rXMn2YH
multinational   3JPrDjCplDQJ5C6dW3GdfdUfcUd9JWSk
toenails        otxuIGz0yBtlVS28JsxQBMprWfTxLay8
gusting ZsjS338QATqSV24skfzIcuxdMbmH482g
secured D0unwoSUS0ZjB5nhgaXztiDSrLnkxFg8
lullaby d8vRAHERNbbTO9JXz54vvTee2h3r34eN
digesting       tQYxuA0ipFEHmmZHPH6WR0JWGl3qABSj
cauliflower's   2XYhp6DdCLCM2ommbJpXiMFCQuBvqCgV
demotion        LiuztOhsUWoKOUQeus1oRd80Sm0ojvL2
bibliography    iXMPKFRedzgG2UFoHEbPuYBNlDLz1yNK
Antichrists     9WFZj4SlBQUJAk5KaPwQC39gOZMORlA5
calibrator's    iMjq9IZFGubWuZWF9H4SygXocKbFFgHB
pottier S3760f77XqsyOPMpgv4ftG8lLNd7GvIZ
reprogramed     JQ8hHfh95sMgUK7ziX54RvgULJwVeEmI
spheroids       hgO9DLzdYx43M4n6QiXgM6ppXzhUABEb
pedagogues      JP25jfk8VfXuZORDwrXzZcMqK4brpBBZ
Thanksgiving    Fb14l018y6vuTDNDgBWdwa2HlrWFsjX6
neckties        tcbEj1WTBOMnVisqukyKVEMF3xP8KONP
recruited       vouDxblNhohccfmdpgxIvVDuzs5GranT
escort's        kusR1SVKOkYd1mYdc3X9ferGHuWVTHGt
spikiest        TcKLPRSic3Gzma4CWHXMCXjgiTLwoZMT
inadvisable     skDnZkW32XLE4Q0umVzInoaUnHSZu3nz
particular      Z9t05ILz4vZ2RvMPWCKBqRxUaUUS046y
panniers        4UJdAq6w8Mk07c9pq2AhDPNrlLXMyKPp
fathoms wj2znXkYvsifdcYjLg9ZRccFAD3UXNkO
effervesced     luTACtkT6VE2qwaCupU7DcWWkZGG3kyg
league's        YnKQ6lugsHJolci72al6FZfZjQJG2OI5
.
.
.

엄청 깁니다.. 파일이.. 필터를 걸어줘야 할 필요가 있을 것 같네요.

리눅스에서 출력에 대한 필터를 걸기 위해선 어떻게 해야 할까요??

grep [옵션] [표현식] [파일명] : 파일 속 특정 표현식(문자열)을 찾습니다.

millionth 란 단어를 grep 하면 될 것 같군요!

그런데, 명령어를 어떻게 넘겨야 할까요..?


 

리눅스에서 이와 같은 역할은 |가 하고 있습니다.

| : Pipe, 파이프, 앞에서 나온 명령의 결과를 두 번째 명령에서 사용합니다.

A | B : A의 결과를 B에서 사용

 


 

즉, cat data.txt의 결과를 grep 명령어로 넘기면 되겠군요!

명령어를 다음과 같이 완성할 수 있습니다.

cat data.txt | grep millionth
bandit7@bandit:~$ cat data.txt | grep millionth
millionth       cvX2JJa4CFALtqS87jk27qwqGhBM9plV

bandit8의 패스워드는 cvX2JJa4CFALtqS87jk27qwqGhBM9plV 였습니다!!

마무리

리눅스에서 없어서는 안 될 명령어인 grep|를 배웠습니다.

보기 좋고 쉽게 데이터를 뽑아내기 위해선 grep의 다양한 옵션들을 활용해야 합니다.

find와 마찬가지로 굉장히 많은 옵션이 있으니 한 번쯤은 찾아보시는 것이 좋을 것 같습니다!!

Level 8 → Level 9 에서 뵙겠습니다! :D