본문 바로가기

#CTF 2020

JISCTF 2020 write up

반응형

목요일, 19 11월 2020, 17:00 UTC — 토요일, 21 11월 2020, 19:00 UTC

 

 

[Crypto]

-Call

-Hidden

-Upside Down!!

-Not Only Images!!!

-Stages

-Not that easy!!

 

[Forensic]

-Malicious

-So easy

-Stealthy

-FIXTION

 

[Misc]

-Common

-Too Secret


[Crypto]

 

[문제]

 

  • 처음에 Hex값이 적혀있길래 ascii로 변환을 해보았지만 변환이 되지 않았다.
  • "00110000910000FF2E547419646687CFA0F41CA4032993D321D5B8414D9BD348D1397C1293CE63C458753AB3915028B44901"
  • 문제 제목이 call이여서 구글에 call에 관한 ctf문제를 찾아보던 중 SMS PDU decoder라는 사이트를 발견했다.

 

 

Online SMS PDU Decoder/Converter | Diafaan SMS Server

Online SMS PDU Decoder SMS PDU's (Packet Data Unit) are the encoded SMS messages that are sent over the GSM network Use this online PDU tool to convert an SMS-SUBMIT, SMS-DELIVER or SMS-STATUS-REPORT PDU (JavaScript required). From: diafaan Message: diafaa

www.diafaan.com

 

[flag]

  • Flag : JISCTF{SMS_ENCODING_FUNNY_!!!}

 


[Crypto]

[문제]

 

[JISCTF-S3kR3T.png]

  • zip파일 안에는 위와 같은 이미지파일 한개가 들어있다.

 

[zsteg]

  • png파일이여서 zsteg로 확인해보니 flag가 나왔다.
  • Flag : JISCTF{G00D_J0B_Y0U_EXTR4KT_N3!!!}

[Crypto]

[문제]

 

 

Affine Cipher - Online Decryption, Decoder, Encoder, Calculator

Tool to decrypt/encrypt with Affine cipher, an encryption function with additions and multiplication that code a letter into another with value (ax + b) modulo 26.

www.dcode.fr

[Affine cipher]

 

  • 아핀 암호 사이트에서 복호화를 해보니 바로 플래그가 나왔다.
  • Flag : JISCTF{upside_down_english_characters_cryptography}

[Crypto]

[문제]
[code-data.wav]

 

  • zip파일 안에는 wav음원파일이 들어있다.
  • 음원을 들어보니 신호를 보내는 음이 들린다. 모스부호인 것 같아 디코딩을 해보았지만
  • NOT-THE-FLAG-: ) 라고 나온다...............;;;;

 

[스펙트로그램]

  • 스펙트로그램으로 바꾸어보니 위와 다른 모스부호가 있다.
  • 하지만 간격이 일정하지 않아 플래그가 나오지 않는다.................ㅠㅠ
  • 약간 바코드 형태인 것 같기도 하고...

 


[Crypto]

[문제]

5sdk'6:+"*5sdk'5sdn)5sdn)5sdk'5sdk'5sdk(5sdn(5s[h(5sdn(6:!q)5sdn)5s[h(5s[h(6:!n'5sdk'6:!q)5sdk'5sdk'5sdn)5s[h(5s[h(5s[e&5sdk'6:*t(5s[h(5s[e&5sdk(6:!q(5sdn(5sdn(5sdn(5s[h'5sdk'5s[h(5s[h(6:!n'5s[h(5s[h'5sdk(5s[h'5sdk(5s[h(5sdn)5sdn)5s[h(5sdk(5sdk'6:!q)5sdk(5sdn)5s[h(5s[e&5s[h(5s[h(5sdk'6:+"*5s[h(5s[h'5sdk(5s[e'5sdn(6:!q)5sdk(5sdk(5s[h(5s[e&5sdk'6:!q(5sdn)5s[h(5sdk'6:+")5s[h(5s[e'5sdk'5sdn(5sdn)5s[e'5sdk(5s[h'5sdk'5sdn)5sdk(5sdk(5s[h(6:!n'5sdk(5s[e&5s[h(5s[h'5sdk(5sdn(5sdk'5s[e'5sdk(5s[e&5sdk'5sdk'5s[h(5sdk(5sdn)5sdn)5sdk(6:!n(5sdn(6:!q(5sdn(6:!n'5sdn)5s[h'5sdk(5s[h'5sdk'6:!n'5sdk'6:!q(5sdk'6:*t(5sdk(5s[e&5sdk'5s[h(5sdn(5sdn)5s[h(5sdn)5sdk'6:+"*5sdk(5s[e'5s[h(6:*t)5s[h(6:*t).

 

  • crypto.dat파일을 HxD에서 열어보니 위와 같은 알 수 없는 문자열들이 있다.
  • 비슷한 문자열을 ASCII85 복호화를 할 때 본 적이 있다.

 

 

[ASCII85 Decoder]

  • 디코딩을 해보니 A,B로만 이루어진 문자열이 나왔다. 
  • 바이너리로 바꾸어 디코딩하면 될 것 같다. 
  • A=0, B=1
0100111101000111011101000100010101100011011010110111001100111000010010110100010001110011001100000100110000110000010110100110011001100010010000110011100000110010010100100101001101110111001101010100101101010111001100000011001101001111001100100101000101101011010101010011000001001010011100110100111000110001010001100111000101010010010001110101010100111000010100000011001001010110010000010101000001000100001101010111011101011001011010100110100001110010010100100100100001001010010011000101000001000011011001110011011101001111010100010011110100111101

 

  • Binary를 Ascii로 변환해보면 OGtEcks8KDs0L0ZfbC82RSw5KW03O2QkU0JsN1FqRGU8P2VAPD5wYjhrRHJLPCg7OQ== 
  • 문자열이 나온다.

 

[Base64]

  • Base64 디코딩을 해보니 문제와 비슷한 형태의 문자열이 나왔다.
  • 다시 Ascii85 디코딩을 해보았다.

 

[ascii85]

 

  • Flag : JISCTF{Multiple_Enoding_of_data_JISCTF}

[Crypto]

[문제]

 

[my-data.dat]

 

  • T,F로 이루어진 문자열이다.
  • 바이너리로 바꾸기 위해 메모장에서 T=0, F=1로 치환하였다.

 

010000110100001100011001001111010001000101111101110111010100110100010001011111011101110101001101111000010111110111011101010011011110000101111101110111010100110100010001011111011101110101001101111000010101110111011101010011010001000101111101110111010100110111100001011111011101110101001101111000010111110111010101010011011110000101011101110111010100110100010001010111011101010101001101000100010101110111011101010011010001000101111101110111010100110111100001011111011101010101001101000100010111110111011101010011010001000101111101110101010100110111100001011111011101110101001101101011110100111100010001010111011101110101001101000100010101110111011101010011011110000101011101110111010100110100010001010111011101110101001101000100010101110111010101010011011110000101111101110111010100110100010001010111011101110101001101111000010101110111011101010011011110000101111101110101010100110111100001011111011101110101001101111000010101110111011101010011010001000101111101110101010100110100010001011111011101010101001101111000010111110111010101010011011110000101111101110111010100110100010001010111011101010101001101000100010101110111011101010011010001000101111101110101010100110100010001011111011101110101001101101011110100111111100001011111011101110101001101000100010111110111011101010011011110000101111101110111010100110111100001011111011101110101001101111000010101110111010101010011010001000101111101110111010100110111100001010111011101010101001101000100010111110111011101010011010001000101011101110111010100110100010001010111011101110101001101000100010111110111011101010011010001000101011101110101010100110100010001010111011101110101001101111000010101110111011101010011010001000101011101110111010100110100010001011111011101110101001101000100010111110111011101010011010001000101011101110111010100110100010001011111011101110101001101.

 

  • ascii로 변환할 수 없는 바이너리이다.. 0,1을 바꾸어 해봐도 안된다.
  • 주어진 문자열을 거꾸로 바꾸어보았다.
f=open("D:/CTF/JISCTF2020/Crypto/9_Not that easy!!/my data.txt")
data=f.read()

print(' '.join(reversed(data)))

 

  • F=0, T=1
010011010100010001000001011101110100110101000100010001010111011101001101010001000100000101110111010011010100010001000001011101110100110101000100010001010111011101001101010001000100010101111000010011010100010001000101011101110100110101010100010001010111011101001101010001000100000101110111010011010100010001000101011101110100110101000100010001010111011101001101010001000100000101110111010011010101010001000101011110000100110101000100010000010111011101001101010101000100010101111000010011010100010001000001011110000100110101000100010000010111100001001101010001000100000101110111010011010100010001000001011110000000110100001010010011010100010001000001011101110100110101010100010000010111011101001101010001000100010101110111010011010101010001000101011101110100110101000100010000010111100001001101010101000100000101111000010011010101010001000001011101110100110101010100010000010111011101001101010001000100010101111000010011010100010001000001011110000100110101010100010000010111100001001101010001000100010101111000010011010100010001000101011101110100110101000100010000010111100001001101010101000100010101110111010011010100010001000101011101110100110101000100010001010111100001001101010001000100010101110111010011010100010001000101011101110000110100001010010011010100010001000001011110000100110101010100010000010111011101001101010001000100000101110111010011010101010001000001011110000100110101000100010000010111011101001101010001000100010101110111010011010101010001000101011101110100110101000100010001010111100001001101010101000100000101111000010011010100010001000001011110000100110101000100010000010111011101001101010001000100010101111000010011010100010001000001011101110100110101000100010000010111100001001101010001000100000101111000010011010100010001000001011101110100110101000100010000010111011101000011011001110011110100111101

 

[binary to ascii]

 

  • base64 인코딩된 문자열이 나왔다.
  • 디코딩을 해보니 또 바이너리가 나왔다.
000010000000010011010110000010010000111000111001001000001000100010110001101100100011001101011010001110010011010010001100000101000010110011101001000011000001001000000

 

  • 여기서 쫌 오래 걸렸다.
  • 바이너리가 아스키로 변환이 안된다.
  • 갯수를 세어보니 5비트씩 끊어진다.
  • 구글에 5 binary cipher라고 검색해보니 Bacon's cipher가 나왔다.

 

 

 

[Bacon cipher decode]

 

  • Flag : JISCTF{BACONCIPHERISNOTGOODTOENCRYPTDATA}

[Forensic]

 

[문제]

 

[image.png]

 

  • HxD에서 주어진 docx파일 확장자를 zip으로 바꾸어 보니 image.png파일이 있다.
  • 바코드 스캔하는 문제인 것 같다.
 

Barcode Reader. Free Online Web Application

Inlite's Barcode scanner software is the best barcode recognition solution for your product, Web Site or IT department. Enable your Windows application or Web Service to read barcodes from any image file, database, mobile phone camera, scanner or fax. © 2

online-barcode-reader.inliteresearch.com

 

[flag]

  • Flag : JISCTF{B4RC0D3_1M4G3_2019}

[Forensic]

[문제]

 

  • 주어진 pcapng파일을 pcap으로 변경한 뒤 networkminer에서 열어보면 플래그를 발견 할 수 있다.
  • editcap -F libpcap -T ether easy.pcapng easy.pcap

 

[flag]

 

  • Flag : JISCTF{V3RY_34SY_PC4P_F1L3}

[Forensic]

[문제]

 

  • Stealth라고 검색해보니 Stealth mode가 나온다. 
  • Stealth mode가 활성화되면 ICMP (ping)와 같은 예기치 않은 요청은 무시된다고 한다.

 

[capture.pcapng]

 

  • pcapng파일을 보면 ICMP ping을 전송할 걸 볼 수 있다.
  • ping [대상 ip]로 스캔이 가능하여 TTL 값을 알 수 있다. 
  • Linux = 64  Windows = 128  Cisco = 256
  • 해당 OS - 홉수=TTL값이 된다.

 

[icmp ttl]

 

  • icmp.type==8 packet이 상대편 호스트로 전달되고, 상대편 호스트는 icmp.type== 0 packet을 송신측으로 재전송한다.
  • icmp.type==8 packet의 ttl값이 좀 이상해서 이것만 모아서 보았다.
  • 하나씩 내려가면서 하단의 Hex값을 확인하면 플래그를 알 수 있다.
  • Flag : JISCTF{M4LW4R3_3XF1LT3R4T10N_US1NG_1CMP_TTL}

[Forensic]

[문제]
[F1X_1T.png]

 

  • 주어진 zip파일안에는 png파일 파일이 들어있었다.

 

[pk]

 

  • HxD에서 확인해 보니 pk시그니처가 있어 zip으로 바꾸어주었다.
  • zip파일에는 암호가 걸려 있었고, 그 안에 수많은 png파일이 존재했다.

 

[pw]

 

  • exiftool에서 pw경로를 알아냈고, pw는 MySup3rS3kr3tPwd2019이다.

 

[png]

 

  • 압축을 풀면 수많은 png가 전부 qrcode이다...
  • 겉보기에는 같은 qrcode이지만 Hex값은 다르다.
  • 이 다음 어떻게 해야하는지 모르겠다.........;;ㅠ

[Misc]

[문제]

 

[file2.txt, file3.txt]

 

  • files.zip파일 안에는 txt파일이 두개가 있다.
  • 겉보기에는 크기와 안에 내용이 같아보인다.
  • 파일안의 문자열을 비교하여 다른점을 찾아내면 될 것 같다.

 

f1=open('D:/CTF/JISCTF2020/Misc/1_Common/files/file2.txt','r')
data1=f1.read()

f2=open('D:/CTF/JISCTF2020/Misc/1_Common/files/file3.txt','r')
data2=f2.read()

result = []
for i, j in zip(data1, data2):
    if i != j:
        print(j,end='')
        result.append(j)
print('\n',result[::-1])

 

[flag]

 

  • Flag : JISCTF{s0m3_c0mm0n_dt4_b3t33n_tw0_f1l3s_jisctf_2019}

[Misc]

[문제]

 

  • 주어진 파일은 mp3파일이다.
  • 들어보면 숫자를 말하고 있는데 약 3분정도 된다. 

 

 

Speech to Text Demo

The IBM Watson Speech to Text service uses speech recognition capabilities to convert Arabic, English, Spanish, French, Brazilian Portuguese, Japanese, Korean, German, and Mandarin speech into text.

speech-to-text-demo.ng.bluemix.net

더보기

76835211776105651167683651167683481037610548117768365117736748116761054810376108571028849561177367521167367521177610552117736752103761085710288495611773675210376834811676836511676834811676105651177367531028849571027610565116736748116768348117736748116768365117768352117736753102761085611776105651178812153102761055275.

  • 위의 사이트에서 음성을 텍스트로 변환해준다.

 

[Decimal]

  • 주어진 숫자는 10진수이다.
  • ascii로 변환하면 
  • LS4uLiAtLSAtLS0gLi0uLSAuIC0tLi0gLl9fX18uIC4tIC4uLi4uIC4gLl9fX18uIC4gLS0tLSAtLS0tLiAuIC5fX19fLiAtIC0tLS0uIC0tLSAuLS4uIC5fLl8uLiAuXy5fLi4K
  • base64로 디코딩하면 
  • -... -- --- .-.- . --.- .____. .- ..... . .____. . ---- ----. . .____. - ----. --- .-.. ._._.. ._._.. 
  • 모스부호가 나왔지만 - _ 모양이 두개가 존재한다. - _를 바꾸어도 값은 변함이 없다.
  • . - 를 서로 바꾸어 보았다.
  • .--- .. ... -.-. - ..-. -....- -. ----- - -....- - .... ....- - -....- . ....- ... -.-- -.-.-- -.-.--

 

[flag]

 

  • Flag : JISCTF{JISCTF-N0T-TH4T-E4SY!!}

 

 

반응형

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

Shakti CTF 2020 write up  (0) 2020.12.05
JISCTF 2020 write up SQUARE_qrcode  (0) 2020.11.23
Sunshine CTF 2020  (0) 2020.11.11
CyberYoddha CTF 2020 Write up  (0) 2020.11.02
Syskron Security CTF 2020 Write up  (0) 2020.10.26