Security Fest CTF 2018 Writeup

この大会は2018/5/31 19:00(JST)~2018/6/2 1:00(JST)に開催されました。
今回もチームで参戦。結果は255点で546チーム中51位でした。
自分で解けた問題をWriteupとして書いておきます。

Sanity check (Misc)

freenodeで#securityfest-ctfチャネルに入ると、フラグが記載されている。

sctf{securityfestctf_2018}

Zion (Misc)

与えられたファイルをバイナリエディタで見ると、前半0x3892バイトにdocxが1つ、それ以降がバイト列が逆になっていて別のdocxがある。後半のdocxを取り出す。

with open('YouKnow', 'rb') as f:
    data = f.read()

data1 = data[:0x3892]
data2 = data[0x3892:]

with open('YouKnow1.docx', 'wb') as f:
    f.write(data1)

with open('YouKnow2.docx', 'wb') as f:
    f.write(data2[::-1])

後半のdocxをWordで開いてみると、フラグが書いてある。
f:id:satou-y:20180607214223p:plain

sctf{m41nfr4m3_4cc3ss_c0d3_1337_4lw4s}

Mr.reagan (Misc)

ディスクイメージをFTK Imagerで開いてみる。orphanフォルダにあるファイルの内容は次の通り。

$Boot
bjN0MWNfcH 

$Extend
VsNTNfdzRz

$Info
c2N0ZnszbD

$LogFile
X2Y0azN9Cg

$Secure
NjdHIwbTRn

Base64文字列のようなのでデコードしてみる。

>>> 'bjN0MWNfcH=='.decode('base64')
'n3t1c_p'
>>> 'VsNTNfdzRz=='.decode('base64')
'V\xc3S5\xf7sG'
>>> 'c2N0ZnszbD=='.decode('base64')
'sctf{3l'
>>> 'X2Y0azN9Cg=='.decode('base64')
'_f4k3}\n'
>>> 'NjdHIwbTRn=='.decode('base64')
'67G#\x06\xd3F'

適当につなげてデコードしてみると、フラグになった。

>>> 'c2N0ZnszbDNjdHIwbTRnbjN0MWNfcHVsNTNfdzRzX2Y0azN9Cg=='.decode('base64')
'sctf{3l3ctr0m4gn3t1c_pul53_w4s_f4k3}\n'
sctf{3l3ctr0m4gn3t1c_pul53_w4s_f4k3}