net-nyan-cat

俺たちがインフラ野郎Aチーム

JISCTF 2020 writeup

11/19~行われたJISCTF 2020のwriteupです。
最終得点は2050ptで、256チーム(0点以上のみ)中38位でした。飲酒しなかったら20位台行けましたね…
国内ではチームnoranecoやpwnasonicなど企業系のチームが見られましたが、ぼっちCTFerとしては善戦できたかもしれません。

Misc

Common (150pt)

クソ長テキストファイルが2つ渡されます。
2つとも似てますが、微妙に内容が異なりました。
difffで差分を比較したところ、異なる部分がフラグっぽいなーと思い抽出。 f:id:xrzhev:20201201151626p:plain

#! /bin/env python3
with open("./file2.txt") as a:
    ar = a.read()
with open("./file3.txt") as b:
    br = b.read()

arr_a = []
arr_b = []

for i in range(len(ar)):
    if ar[i] != br[i]:
        arr_a.append(ar[i])
        arr_b.append(br[i])

print("".join(arr_a))
print("".join(arr_b))
xrzhev@xrzhev:~/works/ctf/jisctf2020/common$ python3 loader.py 
lfbz95eobcrtqadt7kdxz0dcis{x5kikpueriiebmavwnxdvwex9
}9102_ftcsij_s3l1f_0wt_n33t3b_4td_n0mm0c_3m0s{FTCSIJ

xrzhev@xrzhev:~/works/ctf/jisctf2020/common$ echo "}9102_ftcsij_s3l1f_0wt_n33t3b_4td_n0mm0c_3m0s{FTCSIJ" | rev
JISCTF{s0m3_c0mm0n_dt4_b3t33n_tw0_f1l3s_jisctf_2019}

フラグはJISCTF{s0m3_c0mm0n_dt4_b3t33n_tw0_f1l3s_jisctf_2019}

Oh my rain!!! (150pt)

渡されるzipファイルにパスワードがかかっていました。
最初にzip2johnでハッシュを抜いてhashcatでハッシュクラックを行おうと思いましたが、ハッシュの長さが少しおかしかったためjohnでzipのパスワードをクラックします。

xrzhev@xrzhev:~/works/ctf/jisctf2020/oh_my_rain/test$ /opt/john/run/zip2john ./OH-MY-R41N.zip > OH-MY-R41N.zip.hash

xrzhev@xrzhev:~/works/ctf/jisctf2020/oh_my_rain/test$ /opt/john/run/john  ./OH-MY-R41N.zip.hash 
Using default input encoding: UTF-8
Loaded 1 password hash (ZIP, WinZip [PBKDF2-SHA1 256/256 AVX2 8x])
Will run 4 OpenMP threads
Proceeding with single, rules:Single
Press 'q' or Ctrl-C to abort, almost any other key for status
Almost done: Processing the remaining buffered candidate passwords, if any.
Proceeding with wordlist:/opt/john/run/password.lst
management       (OH-MY-R41N.zip/data.txt)     
1g 0:00:00:00 DONE 2/3 (2020-12-01 15:47) 1.250g/s 94655p/s 94655c/s 94655C/s 123456..ferrises
Use the "--show" option to display all of the cracked passwords reliably
Session completed. 

zipファイルのパスワードはmanagementと判明しました。
zipファイルを解凍し、内部のdata.txtを確認します。

xrzhev@xrzhev:~/works/ctf/jisctf2020/oh_my_rain/test$ cat data.txt
JJFEMRKNKJFU4S2KIZKTIUZSJNEVUS2UJFKVUU2KJZCVMVKTGJKUURSLKZKVKMSLJJNEGVSNKZFV
IR2KJNKVKUSTJRFVUS2WJNGVGTCKJJHEKR2WKNHEWWSGKYFESURSJNFE4S2WJNKVGVCKKJDFMVKT
GJLUUTSHKZDVIQ2LJJFEQRKLKIZFOS2OJBCVOV2TI5FVSRSFKNKVEU2KJZDEKNCTGJLUUTSLKZDV
MQ2LJNFEIRSNKZFVICSHJJGFKVKUKNEEWWSEKZEVCMSMJJFEMRKRKJFUYS2JLJDE6UZSJ5FEEQ2W
J5LDEVCJGVDFMU2SKNDEWTSLKZCVKMSLJJNEIRKLJZBVIR2KJRKVKVCTJRFVURCWBJGVCMSMJJHE
---- snip ----
GJFUSUSDKVLVMU2MJNHEMVIKGRJEGVSLKZFUMR2RGJGEYSSDIZGVES2WI5FEOVKVKNJU6SKWINLE
KVKLJRFEUTCFK5JEWWCLKVNEKUKTKNDUUWSDKVLVMU2MJNLEMVJUKEZEMS2OJRDEOURSJQFEYSSE
KZGVEMSOJNHEIRKVKNJUOSKWI5LEKUZSJ5BEURSVKVJEWVSLGVFEIRKTGJFUUSSDIVFVIMSWJJHE
WRKVKJJUOS22IZKTETKTJBFEURCFJ5LFGSCLKZDFKCSXKNFTESKSIRCUOVSTJNDVMRKGJNHFGUSL
KU3FIMSQJFFQU===

大文字及び数字、3文字の=でパディングされていることからbase32でエンコードされていることがわかります。 デコードを試してみます。

xrzhev@xrzhev:~/works/ctf/jisctf2020/oh_my_rain/test$ cat data.txt  | base32 -d
JJFEMRKNKJFU4S2KIZKTIUZSJNEVUS2UJFKVUU2KJZCVMVKTGJKUURSLKZKVKMSLJJNEGVSNKZFV
IR2KJNKVKUSTJRFVUS2WJNGVGTCKJJHEKR2WKNHEWWSGKYFESURSJNFE4S2WJNKVGVCKKJDFMVKT
GJLUUTSHKZDVIQ2LJJFEQRKLKIZFOS2OJBCVOV2TI5FVSRSFKNKVEU2KJZDEKNCTGJLUUTSLKZDV
MQ2LJNFEIRSNKZFVICSHJJGFKVKUKNEEWWSEKZEVCMSMJJFEMRKRKJFUYS2JLJDE6UZSJ5FEEQ2W
J5LDEVCJGVDFMU2SKNDEWTSLKZCVKMSLJJNEIRKLJZBVIR2KJRKVKVCTJRFVURCWBJGVCMSMJJHE
---- snip ----
6VSTIQFEUUSGIVKVEU2HJJHEYVKXKZBUWSS2IZDEWVJSKVFU4R2VKNLFGTKLLJDFMR2VGJKUUSSG
IVKVES2MJNNEEVKZKMZFGSKKJNKTEVJSKRFDKRSFKVJEGRSKGVGEKCSHKJBUWS2KIRCUWVSLKNFU
4RCVKVKFGQ2LLJCFMRKVGJGUUSSOIVCVEUKLJJLEWRKXKUZEQSSGJZCUWVSLKVFU4Q2FKNLFGR2L
LJDVMR2NKNDEUSSGIVGVES2OBJFUURKVK5JDES2KJJCEKT2VJNKEURSGKZFU2MSHJJDEOVSHKVFU
WSK2IRDEGVSKGVEFKNSRKU6T2PIK

またもbase32でエンコードされているようです…。
というわけでしばらくbase32のデコード作業が続きます。

xrzhev@xrzhev:~/works/ctf/jisctf2020/oh_my_rain/test$ cat data.txt  | base32 -d | base32 -d | base32 -d| base32 -d | base32 -d| base32 -d | base32 -d| base32 -d | base32 -d| base32 -d | base32 -d| base32 -d | base32 -d| base32 -d | base32 -d| base32 -d | base32 -d| base32 -d | base32 -d| base32 -d | base32 -d| base32 -d | base32 -d| base32 -d            
-[------->+<]>+.-.++++++++++.--[->++++<]>-.>-[--->+<]>-.[----->+<]>++.>--[-->+++++<]>.>-[--->+<]>-.------------.[--->++<]>+.>-[--->+<]>--.+[-->+<]>+++.++++.>-[--->+<]>--.+[-->+<]>+++.---[->++<]>-.>-[----->+<]>--.+[-->+++<]>++.+++.----.-[--->++<]>+.------.-[-->+++<]>+.+++++.[++>-----<]>.[-->+++<]>--..-[--->++<]>+.+[-->+++<]>.-------.>-[----->+<]>.>--[-->+++<]>.

ようやくすべてのデコードを終えるとbrainfuckのコードが隠されていました。
オンラインインタプリタで実行してみます。
f:id:xrzhev:20201201155706p:plain フラグはJISCTF{TH1S-1S-S1MPL3-CH4LL3NG3}

SOUND!!! (150pt)

wavファイルが渡されます。
DeepSoundにポイするとフラグっぽいものが入ってます。 f:id:xrzhev:20201201160617p:plain FLAG.rarを抽出し、解凍を試みましたがパスワードがかかっていました。
rar2johnでハッシュを抜き出し、hashcatでハッシュクラックします。

xrzhev@xrzhev:~/works/ctf/jisctf2020/sound$ /opt/john/run/rar2john FLAG.rar > FLAG.rar.hash

PS C:\Users\hyper> .\hashcat.exe -m 13000 -a 0 -o ../found.txt ..\FLAG.rar.hash ../rockyou.txt -O
PS C:\Users\hyper> cat ..\found.txt
$rar5$16$f25ccea8c272c5eb60074c8c2dcc90ca$15$806fafd1344f2911f19b2c9735a56453$8$4680aa601b747f8a:!!Boom!!

!!Boom!!がrarのパスワードになります。
というわけで中身を確認してみます。

xrzhev@xrzhev:~/works/ctf/jisctf2020/sound$ unrar x ./FLAG.rar

UNRAR 5.61 beta 1 freeware      Copyright (c) 1993-2018 Alexander Roshal


Extracting from ./FLAG.rar

Enter password (will not be echoed) for FLAG.TXT: 

Extracting  FLAG.TXT                                                  OK 
All OK

xrzhev@xrzhev:~/works/ctf/jisctf2020/sound$ cat FLAG.TXT 
JISCTF{ST3G0_1N_AUD10_F1L3_2019}

フラグはJISCTF{ST3G0_1N_AUD10_F1L3_2019}

Forensics

So Easy (100pt)

pcapngファイルが渡されます。
適当に追ってたらhttpでPOSTしてるところにフラグがありました。 f:id:xrzhev:20201201163354p:plain フラグはJISCTF{V3RY_34SY_PC4P_F1L3}

Unknow Ransomware (150pt)

暗号化したといっている謎のファイルが渡されます。 見てみるとただbase64エンコードしただけでした。

xrzhev@xrzhev:~/works/ctf/jisctf2020/unknow_ransom/test$ cat flag.enc
Vm0wd2QyUXlVWGxXYTJoV1YwZG9WbFl3WkRSV01WbDNXa2M1VjJKSGVEQmFWVll3VjBaS2RHVkdX
bFpOYm1oUVZtcEdTMk15U2tWVQpiR2hvVFdzd2VGWnRjRWRUTWsxNVUydFdWUXBpU0VKWVZtMTRk
MVZXV25SalJXUmFWakZLU1ZadGRGZFZaM0JwVmxad1ZWWnRjRXRpCk1sWlhWMjVTYWxKVmNITlZi
VEZUVTFaYWRHUkhkR2hhTTBKVVdXMTBTMVZHV2xoalJYUnBDazFXV2xoV01qVlRZV3hLV0ZWc1Zs
VlcKTTA0MFZHeGFZVk5IVWtsVWJXaGhUVEJLVlZkWGVHdGlNbEp6VjJ0a1dHSkhVbkpEYXpGV1kw
---- snip ----
cEgKVjIxR2FFMXJXbmxVVmxwclYwZEtkVkZzYUZwaVIyaDJDbGt5ZUhOV01XUnlaRVpvVjJFeGNE
WldWbVEwWWpGYU0yTkZOVTVpVjJoYQpWbXBLTUZVeFJuUldhMlJZVjBkb2FGVXdWVEZYVVhCYVlU
SlNkbGxxUmxOWFIwNDJVbXhXVjJKSGR6RUtWMnRXYTAxR1VYaFRia3BYCllXeEtXRmxzVWxkV1Js
cHlXa1ZrYWsxck5VZFVNVlpUWVZaS1dWRnRSbGRoTWxGM1ZHdGFTMUZ0VGtoU2JYaG9ZVEJWZUZa
V1VrdGgKYXpsWFVXeEthUXBsYWtKTVEyYzlQUW89Cg==

デコードするとまたbase64になっているので、ひたすらデコードします。

xrzhev@xrzhev:~/works/ctf/jisctf2020/unknow_ransom/test$ cat flag.enc | base64 -d | base64 -d | base64 -d | base64 -d | base64 -d | base64 -d | base64 -d | base64 -d | base64 -d | base64 -d | base64 -d | base64 -d | base64 -d            
�`B�DNEI�$ӫa�_�"�針������0���z�XC�vo@
                                     T��B��!`�y�Y�L!S
---- snip ----
                                                                                              �N%RDHI
GNP�

なんかバイナリ形式であり、PNGファイルヘッダを逆にしたようなものがあります。 というわけでバイナリを逆から読んで正常なPNGファイルかチェックします。

xrzhev@xrzhev:~/works/ctf/jisctf2020/unknow_ransom/test$ cat flag.enc | base64 -d | base64 -d | base64 -d | base64 -d | base64 -d | base64 -d | base64 -d | base64 -d | base64 -d | base64 -d | base64  base64 -d | base64 -d > png.bin 
xrzhev@xrzhev:~/works/ctf/jisctf2020/unknow_ransom/test$ cat png.bin | xxd -p -c 1 | tac | xxd -p -r > flag.png

出力したPNGファイルを見てみます。 f:id:xrzhev:20201201170837p:plain
フラグはJISCTF{R3V3RS3_1M4G3_C0NT3NTS}

Malicious (100pt)

word形式のファイルが与えられます。(.doc)
とりあえず開くとフツーの画面。マクロ等もありませんでした。
f:id:xrzhev:20201201180312p:plain とりあえず.docファイルを解凍してみます。

xrzhev@xrzhev:~/works/ctf/jisctf2020/milicious/test$ unzip ./malicious.doc
Archive:  ./malicious.doc
  inflating: [Content_Types].xml     
  inflating: _rels/.rels             
  inflating: docProps/app.xml        
  inflating: docProps/core.xml       
  inflating: image.png               
  inflating: word/_rels/document.xml.rels  
  inflating: word/document.xml       
  inflating: word/fontTable.xml      
  inflating: word/media/image1.jpeg  
  inflating: word/settings.xml       
  inflating: word/styles.xml         
xrzhev@xrzhev:~/works/ctf/jisctf2020/milicious/test$ ls
'[Content_Types].xml'   _rels   docProps   image.png   malicious.doc   word
xrzhev@xrzhev:~/works/ctf/jisctf2020/milicious/test$ file image.png 
image.png: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, Exif Standard: [TIFF image data, big-endian, direntries=7, manufacturer=BeFunky, orientation=upper-left, xresolution=106, yresolution=114, resolutionunit=2, software=BeFunky Photo Editor], baseline, precision 8, 642x76, components 3

すると、普通のWord形式のファイルには存在しないimage.pngというファイルがありました。
しかもpngって拡張子がついてるのに実態はjpegでした。
リネームしてファイルを開きます。
f:id:xrzhev:20201201180722j:plain
二次元バーコード形式の画像ファイルになりました。
inliteでチェックします。
f:id:xrzhev:20201201180905p:plain フラグはJISCTF{B4RC0D3_1M4G3_2019}

Malicious2 (100pt)

Maliciousと同じようにWord形式のファイルが与えられます。(.doc)
しかし、ファイルはOffice側でパスワード設定がされていました。

xrzhev@xrzhev:~/works/ctf/jisctf2020/malicious2$ file mal2.doc
mal2.doc: CDFV2 Encrypted

Office2Johnでハッシュを抜き出し、hashcatでハッシュクラックします。

xrzhev@xrzhev:~/works/ctf/jisctf2020/malicious2$ /opt/john/run/office2john.py ./mal2.doc > mal2.hash

PS C:\Users\hyper> .\hashcat.exe -m 9400 -a 0 -o ../found.txt ..\hal2.hash ../rockyou.txt -O
PS C:\Users\hyper> cat ..\found.txt
$office$*2007*20*128*16*6054846762510f801f75d44d2d81ee98*2e39d30eac11bd4dafc83c5a197bde0a*cfa9f22cde46863f4bbed00e8fb343eb1f11da12:princess101

パスワードを入力しWordファイルを開くと…。 f:id:xrzhev:20201201182324p:plain フラグはJISCTF{H4PPY_HUNT1NG}

Indicate (200pt)

SIEMで取得した、というハッシュ値が渡されます。

001351e2ab912ce17ce9ab2c7465f1a265aa975c879e863dea06e177b62d8750
fe1a602aadba2e52b3b2cf82139c4d10c9fc14889435e0bd9aa54d30760fd1db
352656186eb3bb7e7495fa0922a4defce93bc2213c4d37adc6e42b59debee09e
d672df1dea88e3ad2159b9c7b2df1dbd39b912e648c5097800f48fbf95cadd70
352656186eb3bb7e7495fa0922a4defce93bc2213c4d37adc6e42b59debee09e
0e6957de845ce5a1b0a73e91d12383714bda0fac66b13002170c1ff73426b82a
069cf46549f856b7fc266feab68968ad1d5ec4569f6326d71e999526b721ee0c
39759c4fd7193a29cda8ea8714e690c8b5ec374b659a3a1a3bc402c1ba20364a
c25b0ab2413a7b300fc06d5dc5ec9807ec21372b27a5162fa2eb9729b84dd28c
213d537d2f63c70249a4244c394d9c364476ca6fd1ee04d5dda7ddaaf60a04e7
e366a166b172f225d842c0662f5cb261c0d7b50430dbd392f3eb33249fdb375c

とりあえずこのハッシュ値でググりました。
HybridAnalysysというページでこのハッシュで登録されているファイルのデータを確認することができるようです。
f:id:xrzhev:20201201182818p:plain
とりあえず、全ハッシュぶんファイルチェックします。
すると、069cf46549f856b7fc266feab68968ad1d5ec4569f6326d71e999526b721ee0cというハッシュで少し違う画面になりました。
このハッシュ値のファイルはPDFファイルであり、HybridAnalysys上で中身をチェックできるようです。
f:id:xrzhev:20201201183019p:plain
スクリーンショットを見ていくと...。
f:id:xrzhev:20201201183110p:plain
フラグはJISCTF{IOC-Search-Using-OSINT}

Stealthy

pcapngファイルが渡されます。
HTTPプロトコル上の通信ではフラグと思わしきパケットは確認できませんでした。
だらだら見てると、pingTTLがフラグと判明しました。

xrzhev@xrzhev:~/works/ctf/jisctf2020/stealthy$ tshark -r ./stealty.pcapng 'icmp.type == 8' | awk '{print $13}' | sed 's/ttl=//g'
74
73
83
67
84
70
123
77
52
76
87
52
82
51
95
51
88
70
49
76
84
51
82
52
84
49
48
78
95
85
83
49
78
71
95
49
67
77
80
95
84
84
76
125

f:id:xrzhev:20201201184746p:plain
フラグはJISCTF{M4LW4R3_3XF1LT3R4T10N_US1NG_1CMP_TTL}

Crypto & Stego

Hidden (100pt)

普通のPNGファイルが渡される。
zstegでフラグが読める

###########################
########## zsteg ##########
###########################

Watch out for red output. This tool shows lots of false positives...
b1,r,lsb,xy         .. text: "<1vQ ~]P]~"
b1,rgb,lsb,xy       .. text: "JISCTF{G00D_J0B_Y0U_EXTR4KT_M3!!!}"

フラグはJISCTF{G00D_J0B_Y0U_EXTR4KT_M3!!!}

Call (100pt)

以下の問題文が与えられます。

Decrypt me:
00110000910000FF2E547419646687CFA0F41CA4032993D321D5B8414D9BD348D1397C1293CE63C458753AB3915028B44901

asciiに直してもうまくいかず、悩みましたが、ググったら解決。
00110000910000で検索するとSMS送受信に使われるのPDU encodeというらしいです。
携帯回線に自信ある~とか言っておいてめちゃめちゃ恥ずかしい。 デコードした結果は以下。
f:id:xrzhev:20201201194757p:plain
フラグはJISCTF{SMS_ENCODING_FUNNY_!!!}

Upside Down!! (150pt)

以下の問題文が与えられる。

Try to decrypt me?
JISCTF{fkhrwv_wldm_vmtorhs_xszizxgvih_xibkgltizksb}

atbash cipherです。
フラグはJISCTF{upside_down_english_characters_cryptography}

Logic

暗号化されたファイルが渡されます。

xrzhev@xrzhev:~/works/ctf/jisctf2020/logic/test$ xxd ./ciphertext.txt
00000000: f3f0 eafa edff c2ee 8a8d f2e6 e189 ebe6  ................
00000010: 8af7 f2eb e0e9 ed88 89f7 e6f4 8df7 e69d  ................
00000020: 98c4                                     ..
xrzhev@xrzhev:~/works/ctf/jisctf2020/logic/test$
xrzhev@xrzhev:~/works/ctf/jisctf2020/logic/test$ cat ciphertext.txt
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒툉▒▒▒▒杘▒

cyberchefでxor bruteforceかけてフラグゲット。
f:id:xrzhev:20201201195448p:plain
フラグはJISCTF{W34K_X0R_3NKRYPT10N_M4N_$!}

Reversing

Baby Reverse (100pt)

実行ファイルが渡されます。
とりあえず実行すると以下のようになります。

xrzhev@xrzhev:~/works/ctf/jisctf2020/baby_reverse$ ./Easy 
Try harder!!
xrzhev@xrzhev:~/works/ctf/jisctf2020/baby_reverse$ ./Easy -h
First argument must be in the format number-number-number-number

とりあえず適当に./Easy 1-2-3-4などと引数を付けてgdbで観察しました。
するとどうやらフラグが勝手に組みあがっていくようです。
f:id:xrzhev:20201201200013p:plain
あとはmain関数が終わる直前にスタックを覗くと…。
f:id:xrzhev:20201201200251p:plain
フラグはJISCTF{Th1S_1S_4N_e4Sy_R3v3Rs1Ng}

終わってから解けた

Crypto & Stego : Not Only Images!! (200pt)

wavファイルが与えられる。
中身はモールス信号であり、文字に起こすと以下のようになります。
f:id:xrzhev:20201201200654p:plain
wavファイルのLSBやDeepSoundにもヒットしないため、開催期間中は解くことができませんでした。
しかし、wavstegというツールでファイルを抽出することができるのが後に判明しました。

python3 ./wav-steg.py -r -s ../code-data.wav -o ../output.txt -b 22000 -n 2
xrzhev@xrzhev:~/works/ctf/jisctf2020/not_only_images$ python3 ./wav-steg.py -r -s ../code-data.wav -o ../output.txt -b 22000 -n 2
xrzhev@xrzhev:~/works/ctf/jisctf2020/not_only_images$ cat ../output.txt
iVBORw0KGgoAAAANSUhEUgAABZMAAAK+CAYAAADXH4CWAAAgAElEQVR4nOzd7VHjStc2UDIwGUAG
JgOTAWQAGQwZ4AwgA8gAMjAZOASHoBD6/XE/5vV4JO1uqWULzlpVqjpVZ2xkqfXRV2+1LhIAAAAA
AAQuzr0CAAAAAADMnzAZAAAAAICQMBkAAAAAgJAwGQAAAACAkDAZAAAAAICQMBkAAAAAgJAwGQAA
AACAkDAZAAAAAICQMBkAAAAAgJAwGQAAAACAkDAZAAAAAICQMBkAAAAAgJAwGQAAAACAkDAZAAAA
AICQMBkAAAAAgJAwGQAAAACAkDAZAAAAAICQMBkAAAAAgJAwGQAAAACAkDAZAAAAAICQMBkAAAAA
gJAwGQAAAACAkDAZAAAAAICQMBkAAAAAgJAwGQAAAACAkDAZAAAAAICQMBkAAAAAgJAwGQAAAACA
---- snip ----
AIAlkwEAAAAAWDIZAAAAAIAlkwEAAAAAWDIZAAAAAIAlkwEAAAAAWDIZAAAAAIAlkwEAAAAAWDIZ
AAAAAIAlkwEAAAAAWDIZAAAAAIAlkwEAAAAAWDIZAAAAAIAlkwEAAAAAWDIZAAAAAIAlkwEAAAAA
WDIZAAAAAIAlkwEAAAAAWDIZAAAAAIAlkwEAAAAAWDIZAAAAAIAlkwEAAAAAWDIZAAAAAIAlkwEA
AAAAWDIZAAAAAIAlkwEAAAAAWAHhxKfOpPI14gAAAABJRU5ErkJggg==

base64が隠されていました。
デコードします。

xrzhev@xrzhev:~/works/ctf/jisctf2020/not_only_images$ cat b64.txt | base64 -d
�PNG
�
IHDR���� IDATx����Q�J�6P20@&�d
                              �
---- snip ----

PNGファイルになっています。
確認してみると...。
f:id:xrzhev:20201201201347p:plain
フラグはJISCTF{H1DD3N_1N_W4V_F1L3_!!} なのかな?

感想

pwnがなかった珍しいCTFだったと思います。
あとweb問がHTBみたいに実際に攻撃する感じだったのかな?と思わせるようなものでした。
なんかいつもより解けて楽しくプレイできました。
次は酒に逃げずに頑張っていきたいと思います。