この大会は2021/1/16 10:00(JST)~2021/1/18 10:00(JST)に開催されました。
今回もチームで参戦。結果は120点で521チーム中245位でした。
自分で解けた問題をWriteupとして書いておきます。
signin (Misc)
Telegramに入ると、メッセージにフラグがあった。
*CTF{we1c0me_to_the_starCTF2021~}
GuessKey (Crypto)
maskに0を指定すれば、p, qが何であっても、keyは変わらない。このことから簡単に推測できる。
import socket def recvuntil(s, tail): data = '' while True: if tail in data: return data data += s.recv(1) s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(('52.163.228.53', 8080)) key = recvuntil(s, '\n').rstrip() print key for i in range(3): data = recvuntil(s, 'mask:') print data + '0' s.sendall('0\n') data = recvuntil(s, 'guess:') print data + str(key) s.sendall(str(key) + '\n') data = recvuntil(s, '\n').rstrip() print data data = recvuntil(s, '\n').rstrip() print data
実行結果は以下の通り。
12711853505504410428 mask:0 guess:12711853505504410428 Nice. mask:0 guess:12711853505504410428 Nice. mask:0 guess:12711853505504410428 Nice. *CTF{bcceb9d0913793c7d10ffedddac47cd2}
*CTF{bcceb9d0913793c7d10ffedddac47cd2}