ksnctf write-up #5
問題5 Onion
https://ksnctf.sweetduet.info/problem/5
解法
- base64で何回かでコードする
b=問題文 import base64 for i in range(20): b = base64.b64decode(b) print(i, b)
- 実行結果
14 b'YmVnaW4gNjY2IDxkYXRhPgo1MURRITFVXSY5NFFHNCMtMzo0JTc5N0k3NCRBVQogCmVuZAo=\n' 15 b'begin 666 <data>\n51DQ!1U]&94QG4#-3:4%797I74$AU\n \nend\n' 16 b'm\xe8"\x9f\xae\xbau\xabZ\xe7P\xd0\xd5Ox@n7\xe3\xbf{#\xbe\x00Q\xe9\xdd' Traceback (most recent call last): File "./b64.py", line 102, in <module> b = base64.b64decode(b) File "/usr/lib/python3.7/base64.py", line 87, in b64decode return binascii.a2b_base64(s)
- 16回目が読めそう。
- 「begin 666」はuuエンコード形式
- python3ででコードする
#! /usr/bin/python3 import uu # 抽出したデータ b=b'begin 666 <data>\n51DQ!1U]&94QG4#-3:4%797I74$AU\n \nend\n' # バイナリとして上記変数「b」を保存する with open('aaa.dat', mode='w+b') as fp: fp.write(b) # 出力したdatファイルを読み込んでuuでコード uu.decode('aaa.dat', 'o.txt')
- FLAG
less o.txt