본문 바로가기

#CTF 2020

Shakti CTF 2020 write up(2)

반응형

[Forensic]

주어진 zip파일 압축을 풀어보면 file.zip파일이 나온다.

시그니처는 PK이지만 header가 좀 이상하다.

50 4B 03 04로 바꾸어 저장해보니 pw가 걸려있다.

Password = h4ckTh35t3R30tyP35  (주어진 파일 challenge.zip파일 footer 뒤에 적혀있다.)

 

base형태의 인코딩된 문자열이여서 base32, 64, 85 디코딩을 해봐도 안됐었는데 왜 지금은 되는걸까....

이상하네... 쩝;;;🤔🤔

 

결론적으로 base32 디코딩을 하면 플래그가 나온다.

Flag : shaktictf{y4yYYyyY!_Y0u_g-t_1t_409515398}

 


[Steganography]

 

 

 

주어진 파일은 hacker.jpg, laptop.jpg 두 개이다.

문제 제목처럼 crack하는 문제였다.

 

 

stegcracker로 hacker.jpg에서 숨겨진 문자열을 찾아보니 'password: 14ms0c00l!' 가 나왔다.

 

 

 

steghide로 아까 나온 password를 입력해보니 flag.txt파일이 추출되었다.

Flag : shaktictf{y0u_M4d3_iT_85284501}

 


 

 

주어진 파일은 qrcode와 톰과제리 이미지 파일이다.

qrcode를 scan 해보니 PGP Private key가 나왔다.

 

 

그리고 HxD에서 톰과제리 이미지를 확인해보니 푸터 뒤에 t0m4ndj3rry가 적혀있었다.

 

lukeslytalker.pythonanywhere.com/jsteg/scan

 

Steg0saurus Chex

digital image forensics and steganalysis

lukeslytalker.pythonanywhere.com

JSteg scan을 해보니 PGP-Encrypted Message가 나왔다.

나온 것들을 가지고 PGP Decoding을 하면 된다.

 

www.igolder.com/PGP/decryption/

 

PGP Decryption Tool - iGolder

PGP Decryption Tool This tool is simple to use: enter your private PGP key, your PGP passphrase, and the PGP-encrypted message you wish to decrypt, then click on the Decrypt Message button.  If you supply the proper PRP private key and passphrase/password

www.igolder.com

더보기

-----BEGIN PGP PRIVATE KEY BLOCK-----

lQOsBF9dESIBCACAJLPcBfHKpkH7P+oZqKe+1y9CBjRVCVB4Hlg0iiLakpQ0tPUt cfoa0HQporV+MTs3c3JSjEgBhKcHPVviQ9VfiRe/n8Mi+n60YFVvOUir5VRFPfEW ntRQCWlcxfhV00+z3fOqwfOWaBgP099z2xuXwnvHz5kCsnSLh7SK4SYhCpL9bloS 5l9XOGML2mmneD7yYvVewxQmOcSXKQ8tKOPOQB39jziQbLb44X/mGKBC61At3lsM 5zPvF05zMIhxNnxPCK/FTLONcnG8/dseAgYBCyRt+G/eCmOWee1QOmiO0X6YSbfl MA7z5yu4rvUGcxIcD2MiXPzSGHt4QinqQXHLABEBAAH/AwMCNjXRM6Oa55NgzUx4 7MosTZ7mF5sU9EF5Xya3anQv3lG9Kr5sFU6yrSeScMHnQ96zMlX2kjQW5zV+FoSu 3kNcYwdnQbbF9SRkAucATeSN/RJ/AozYsKavan+Z7MH9fnyf/IKrXa+T1fIZSY7I m41HrQd0f3TXxagHpucE39U2nEU4iDGWVno2imkXPvl6zMV4/cBbJ0XtXWD1o3LS Bz5cMdHkabQyjicSVhVxny3WQe0hKK+T2MubGkd8uvz2GD6zJov806mtvNS7LdYw XRE4rzamEr0PHN1NBHlvwVTEEMACrBk3tW+RICgbbA/3Ls22txbcsg4R6qjew1hP XwtJ04JnmgyuHk5tZlVfNiGfhVMnO30diUmGLiPlzQi25SXv2JDOqOKfxoElkfAk pD2IZejbBBF0dLi5p6ZpJtk3VgwsNLImUC9VT3v9WOe338QThhp2GrvC+SiHK2tN keTP+/7KbLLw1jMeDdFhpiA039AK+CrYDIYnZ57/HMLTMnOIVe0zcMTkxHOsJ7Y0 96eeaC/a4Ozl9bWIBj8p2/e/1ESXIk6fuRyArw8SmQ50iksAQkl/n5Zk+sxWgCkT YzNzY6k005WrUtsHGyp9m9wNi9o/39NVm5CgcrGaM6yt9cT9ehAjMZwQg6lSHN9/ 9GEiFpikarHQxRBBcJGL0njFVjv3gY1VS+Ip7ANjWliXjgXdKklPVs4LA5FlqEeS PxhbxMvQas3Tys/9cXFlpps/ziHx+BT6dI/5tIUPIRDn3po2ABw5vX/WDJe84h92 EDPiz7myQN8n1cYNhV+eCor6P+/7ad/u3iBbdFanMuF6kRE0HcWjeU4rRtS21HGu GJKdNMnL7wpQWFe0WAzTDQ3/ae6IzxIYQlGcz+pCprQXbGV0c3RyeXRoaXMxNUBn bWFpbC5jb22JARwEEAECAAYFAl9dESIACgkQnLX1D/sJQppaeAf/WTZ2PKFm+AVQ 83YDcCeNCr3aMLZUm+2pkTdbWmlQ1FRJaEoRahzmMkRC9t4qTG5N6/UXtrwQXu3M 0cI2QHSUwJiuAk0lJcJt3njBQXbHfnYTEmrULZ31OwEO7cJbE6JRLEWuDE0iwiuZ Ap3syyNdWqZxBYA9CVHRyVpEG7X3OqmZGtFe+O6/knUnpAtzAdWY4GlVi66K0tnn BALiqfgfIKayEFuj/PsVE6gnjPSk3PjgHft08Btm16+8ImxD4uIQV/iySVyoXZkn Oecdb96Tlue6bmNf6nxClaeWaN9mI8FVB63FltOrkecvIKX4UOvkMDWrdBVbV/cf gcMo+fL2cw==

=wJU5

-----END PGP PRIVATE KEY BLOCK-----

 

##############################################################################

-----BEGIN PGP MESSAGE----- Version: BCPG C# v1.6.1.0 hQEMA5y19Q/7CUKaAQf9ELfqpbzBcBqfHjeOu0hfPgKF0YtKsNH3SCSK0EewxAhI WRfti/AOzXbT2MIX0G5PFS3yFghscU4hmRNSSj94EfR8PUGe8Bh8UN2Y2782zEF5 c1o/xzhZS4kN+4LQGVsDAqOeBaL1fU7J95zuw6uX9YBJ0/pTEdxaqZpluczD7fy8 whIqhfwSMdK4N5zAAZEECN+ESYLdQA3kb+IgwlG4WVRDWqDUI9uZ40Hjg+6lP5GN jBGmFPhxRSXeav7KismIVfh1c1dgJ1DytPlxHQRP0q+1Nv/ei1dJ0Vk5U7JjYRUP MCt4LCU0cQzXNgaND2nXlW2VkoYLCGQz+6nlRFMDCck/1N6V7PgMjXGLEUdfKFPe jIKWoBPH5ORTNRjnSYgpvItvsqnPxr9vKXDm6g51mIRRjj4C3ZeRXkAsF2FQphu7 =Dvzy

-----END PGP MESSAGE-----

 

###############################################################################

t0m4ndj3rry

 

 

PGP 복호화를 하면 플래그 형태의 문자열이 나온다.

rot13로 플래그를 찾을 수 있다.

 

 

Flag : skaktictf{jU5t_dr1nk_m0r3_c0ff33}

 


[Misc]

 

공개된 writeup은 이러하다.

근데 난 왜 안될까............ㅠ

import emojicode
emojicode.decrypt('[🥳💀😇😜💩😩😫😺😎🤑😞🤯😭😕😿😽🤢👹😱😠😏😛😧🖐 🤧🤑😴😨🤭😕💀😹🥳👿🤒😬😭😕😿🤏🤧💩😷🤘🥱🙄🤞👆😟😮]')

 

주어진 flag.zip파일에는 암호가 걸려있다. 

그리고 trythis.txt에는 아래와 같은 문자열이 있다. 0과 1로 이루어진 2진수이다.

하지만 일반 binary도 bacon cipher도 아니다.

111111111100100010101011101011111110101111111111011011011011000001101001001001011111111111111001010011000000000000000000000000000000000000000000000000000000001010010000000000000000000000000000000000000000000001010111110010100000000000000000000000000010101111111111111110010100111111111111111111100101001011001010000000000000000000001010011111111110010100100000000000000000000000000000000000010101111111111111001010

Spoon Programming Language라고 한다.

Spoon은 1998 년 Steven Goodwin에 의해 실제로 두 개의 토큰 만 사용하는 언어로 만들어졌다.

Spoon은 Brainfuck 의 방언으로 , 한 문자 명령이 0과 1의 이진 시퀀스로 대체된다고 한다.

 

www.dcode.fr/spoon-language

디코딩을 하면 r4diapErlMan가 나온다. 래디아 펄먼은  미국 소프트웨어 디자이너 겸 네트워크 공학자이다.

flag.zip password는 r4diapErlMan이고, 파일 속에서 플래그를 찾을 수 있었다.

 

Flag : shaktictf{yEsSsSssssSSS...Sp0oNNn!}

 


 

반응형

'#CTF 2020' 카테고리의 다른 글

BSides Algiers 2021 Quals write up  (0) 2020.12.21
Shakti CTF 2020 write up  (0) 2020.12.05
JISCTF 2020 write up SQUARE_qrcode  (0) 2020.11.23
JISCTF 2020 write up  (0) 2020.11.22
Sunshine CTF 2020  (0) 2020.11.11