UUTCTF 2021 Writeup

この大会は2021/10/31 22:00(JST)~2021/11/1 22:00(JST)に開催されました。
今回もチームで参戦。結果は200点で183チーム中103位でした。
自分で解けた問題をWriteupとして書いておきます。

EnQuake (Reverse 200)

1文字ずつ暗号が対応しているので、uutctf{から始まることを前提に鍵を求め復号する。鍵は数値なので、0から順に試す。

$ cat flag.txt
uutctf{
$ ./encryptor flag.txt 0
ttubugz

いきなり当たった。

$ cat flag.txt
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
$ ./encryptor flag.txt 0
! #"%$'&)(+*-,/.1032547698;:=<?>A@CBEDGFIHKJMLONQPSRUTWVYX[Z]\_^a`cbedgfihkjmlonqpsrutwvyx{z}|

この結果、1とXORをとればよいことがわかる。

with open('flag.txt.encryptor', 'rb') as f:
    enc = f.read()

flag = ''
for c in enc:
    flag += chr(ord(c) ^ 1)

print flag
uutctf{0perationAlienOverlord13}