꿀 떨어지는 코딩 양봉장

Bandit Level9 ->Levle10 본문

Language/linux

Bandit Level9 ->Levle10

nayoon030303 2021. 9. 21. 01:16

Level Goal

The password for the next level is stored in the file 
data.txt
 in one of the few human-readable strings, preceded by several ‘=’ characters.

패스워드는 data.txt 파일 안에 humma-readable(사람이 읽을 수 있는 문자)로 저장되어있습니다. 

그리고 몇 개의 "=" 문자 뒤에 나온다고 합니다.

풀이 

첫 번째로 파일을 읽는 명령어 cat, 특정 문자열을 찾는 명령어 grep을 사용해서 문제를 풀어봅시다.

cat data.txt | grep "=="
Binary file (standard input) matches

Binary파일이라서 읽지 못한다 라는 문구가 나옵니다.

 

해결방법을 찾아보니 이럴 때는 -a 또는 --text 옵션을 사용하면 된다고 합니다. 

cat data.txt | grep -a "==" 

▒
v▒▒7▒▒[d4▒▒▒▒[▒E▒ed{s▒5▒d!▒۫*.▒d▒d▒$6▒▒1Td▒=▒▒{▒▒▒▒a▒▒▒
                                ▒▒▒▒C▒r▒A▒G▒▒1▒~▒▒趤▒▒▒b▒▒2%▒0`c▒▒*▒!`3r▒▒▒▒▒/▒ZȆڎ▒xʟ▒▒}▒▒▒▒▒}$▒x?X▒▒7▒▒ҟj▒▒▒Hͽ▒▒黜`▒▒&
                                       ▒Q9▒܅J▒▒//M$▒a▒^▒;yzEt!▒▒▒WpU~eϸ`Rn,I▒▒▒MT▒Ձ▒B$1▒,▒ɚџ|\{ɘ▒▒V▒媼▒▒G▒7▒4@[▒▒▒tk▒4Ӷ▒▒hob▒▒X▒▒Q▒▒▒▒O▒`▒<!▒▒L▒VSXdKi▒▒um▒▒m▒\▒WB|{▒,x▒▒▒vd▒▒Т▒▒▒xIY.}▒м&F▒,0f▒▒▒▒▒RV{▒▒l▒▒▒▒@^▒S▒Jp▒`EO%s▒▒▒~֬▒c▒}▒▒▒o?/{▒▒▒^▒▒P8Щ9d
▒▒▒%▒9݈▒G]vQ▒▒▒ٚ▒▒▒n▒R▒Cm▒p▒▒▒▒▒~▒{▒r'▒H(-▒-r▒ZƯs▒xz▒▒▒▒]+aƽ▒g▒▒▒|A▒▒x*▒_f▒^▒▒[Ro▒▒▒r-4f▒▒3,U▒tG▒▒y▒*
▒▒▒▒▒GhG$▒▒▒========== the*2i"4▒d▒▒k▒D                                         <▒}z▒▒-F!▒▒▒V▒O▒^▒▒Z▒^▒XE▒{.▒▒S▒▒i&▒O▒Z▒ޮ▒IZ▒▒▒▒/ϭ·▒▒bc®qd▒▒`ݤ"▒,▒▒▒▒▒R▒▒t▒68}j▒▒^▒▒t<▒▒▒▒▒wC▒ր@▒J▒▒W▒Ԟt▒j▒▒恂z▒4▒▒▒▒E%ڂ▒a▒▒f▒Q~a`%▒h▒3֭▒▒4▒#
8%▒▒F▒{▒"2▒▒▒T▒3▒▒▒z▒▒▒
▒▒`%KƔ▒▒E▒▒▒o▒▒n▒d▒Y|▒▒▒▒W▒x▒▒Ǖ========== password▒b▒▒;▒#6▒▒▒Q▒c▒a▒▒#|-l▒G}`:▒(▒▒g
2▒UW▒|[▒▒▒▒▒▒▒X▒
4#N▒<▒▒V▒▒o▒Z▒f▒U▒Qj▒sL▒▒▒▒▒E񏾐E▒▒▒▒l▒▒D▒'▒q▒@▒▒k▒▒{5'▒*▒▒▒)=▒bD▒|▒9▒▒x▒D2?     ▒u▒9▒m▒▒▒<▒▒s▒Y▒Q▒π▒▒▒WLz▒▒b▒▒▒HV▒▒▒T▒▒▒▒▒f▒Z▒▒#r▒▒8E/▒N▒▒ƨ▒▒▒▒<c▒O▒▒O▒ {▒Tm▒j▒A▒%Ɩ▒▒MDQ▒@▒q▒s▒j▒▒▒Z)========== is▒▒z(▒▒ÿx
.▒▒{▒▒`▒W▒F[▒#}▒b▒▒▒@H$R ͤb▒▒▒LH/▒▒▒     ▒▒▒▒p▒̕;▒▒gM`▒o▒x[U*ʾcj▒`▒▒▒▒@Ӱ▒e▒g%▒&  N▒zt=▒kd▒▒▒S$Y▒r▒[▒{/;7▒M▒
▒<ł▒Wʼn'▒:V`Ƴ▒▒?6▒.▒▒M▒▒5I▒3d▒▒▒▒▒F▒r%z$c`▒W▒r▒-▒▒▒C !n▒{▒i▒\xhw▒fR▒(▒6݈▒▒▒▒▒▒k▒H▒z▒ ▒▒<▒ŸTCg▒_HN?▒1\:▒▒6▒▒▒u▒/T▒\▒񘨇Y▒p▒▒q▒&▒b[▒(<▒▒@PN▒▒▒'U▒LE▒,ťF]̛K▒▒▒>▒▒8▒▒;
                                                                             ▒▒d▒K/▒▒M▒▒+▒3▒▒▒2`<▒▒lr▒▒Y'▒,▒
                            t ▒R#▒▒
                                   ▒▒▒▒▒▒2A▒▒▒
▒ui▒▒{▒`z▒G鉵#Cځh▒▒▒Q|L▒
pOו▒r▒`▒0▒.V▒▒▒m▒▒▒׸▒▒▒R▒▒▒▒v▒8`▒▒▒▒X▒▒�▒wόw▒▒:▒p^▒.▒e▒▒▒ao▒=▒Ψ+V▒Y▒~c▒;▒\▒▒3▒▒d▒▒I▒`▒̰▒ۗ~▒▒@Ief▒▒9▒;▒▒▒▒3▒▒E▒?Z▒Ag▒▒▒▒ ▒>e▒5▒z/▒▒▒]▒▒@▒W.l▒▒▒@y▒t▒▒▒▒r]▒ĉ       !▒▒▒7n▒1▒▒?Qg▒▒/▒▒Cն▒y3▒8▒▒▒▒y~]▒q7진LѮSc▒
▒˹];`▒▒@Ģ▒▒fRk4Ck▒Z▒lp{▒ē▒▒▒F▒▒▒9▒▒5▒h▒▒▒k4m?W▒jۮV|+▒J▒▒H▒,▒R▒▒▒▒▒7Y{▒`▒]▒▒ LVt▒V▒ۭN.=ѓ▒Jq{`▒՛9▒z▒▒L▒▒▒Ov▒D▒▒▒▒7▒8&יV#▒:▒▒▒▒l▒؇51▒T▒ɝ▒hU▒I▒e▒8▒▒▒ŵד$▒͚
▒▒3▒▒T▒▒t▒▒▒ѿn▒▒u▒▒.▒#▒▒▒!6▒t▒6IM*▒5▒/▒`D▒      mL▒▒a▒▒TS▒˖▒▒*▒▒x▒▒▒▒▒▒S▒y▒LN▒▒
go'▒
▒▒▒▒SI▒▒▒▒"#?▒s▒▒F[[▒p ▒s)욱▒<▒4▒▒▒x▒Xz▒▒▒4▒▒▒▒▒y▒&^▒▒▒ͱ▒/1▒▒ԅ▒▒▒▒▒(▒[▒ R▒

-a 옵션을 붙이면 무언가 엄청난 게 나오긴 합니다.  조금 더 쉽게 볼 수 있는 방법을 찾아보겠습니다. 

 

바이너리 파일에서 문자열만 추출하고 싶을 때 유용한 명령어인 strings가 있다고 합니다. 

사용방법은 

strings binaryfilename

 

strings와 grep을 같이 사용해보면

strings data.txt | grep "==" 

========== the*2i"4
========== password
Z)========== is
&========== truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk

level10의 비밀번호는 truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk 입니다!!

 

 

 

'Language > linux' 카테고리의 다른 글

Bandit Level14 ->Levle15  (0) 2021.09.23
Bandit Level13 ->Levle14  (0) 2021.09.23
Bandit Level12 ->Levle13  (0) 2021.09.22
Bandit Level11 ->Levle12  (0) 2021.09.21
Bandit Level10 ->Levle11  (0) 2021.09.21