Hack-A-Sat Qualifiers Writeup

この大会は2020/5/23 9:00(JST)~2020/5/25 9:00(JST)に開催されました。
今回もチームで参戦。結果は 16点で1278チーム中496位でした。
自分で解けた問題をWriteupとして書いておきます。

Lt Commander Data (Space Cadets)

flag.txtにフラグが書いてあった。

flag{victor15350tango:GM7GS7urd3l-pFC6UM4QTREc6Y2QDQD0D-3kg1lAWAJww9cpxPOLxHHJCYoNj6LK8DH61o0LUoc_fW5v_F7R5hg}

Lt Starbuck (Space Cadets)

$ nc intro2.satellitesabove.me 5001
Ticket please:
ticket{yankee18761quebec:GAsb4kgl8ZYiCMoS94y4wkyAWAM65zLOIuLRJr6uO8EpFqaAsOrfmp64F-tH9lD8-A}
1980291067 + 1241343456 = ?Time's up!

ticketを提示すると、計算問題が出題されるので、答える。

import socket

def recvuntil(s, tail):
    data = ''
    while True:
        if tail in data:
            return data
        data += s.recv(1)

ticket = 'ticket{yankee18761quebec:GAsb4kgl8ZYiCMoS94y4wkyAWAM65zLOIuLRJr6uO8EpFqaAsOrfmp64F-tH9lD8-A}'

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('intro2.satellitesabove.me', 5001))

data = recvuntil(s, ':\n').rstrip()
print data
print ticket
s.sendall(ticket + '\n')

data = recvuntil(s, '?')
ans = str(eval(data[:-4]))
print ans
s.sendall(ans + '\n')

data = recvuntil(s, '\n').rstrip()
print data
data = recvuntil(s, '\n').rstrip()
print data
data = recvuntil(s, '\n').rstrip()
print data

実行結果は以下の通り。

Ticket please:
ticket{yankee18761quebec:GAsb4kgl8ZYiCMoS94y4wkyAWAM65zLOIuLRJr6uO8EpFqaAsOrfmp64F-tH9lD8-A}
3221634523
You got it!
Here's your flag:
flag{yankee18761quebec:GMHoaJMeKDB4_MGjGN5i_VZywQz6oTbxzkpE-ePYRnphgn5OROExUKx5LIhxrhWZHcLzsxugFyQSPD7ZEE-mmz8}
flag{yankee18761quebec:GMHoaJMeKDB4_MGjGN5i_VZywQz6oTbxzkpE-ePYRnphgn5OROExUKx5LIhxrhWZHcLzsxugFyQSPD7ZEE-mmz8}

Capt Solo (Space Cadets)

$ nc intro3.satellitesabove.me 5002
Ticket please:
ticket{romeo80389foxtrot:GJ2i7z97jJ3w2ZUhJhRSOF9fRHF2iiwZkbQmSEVrOgS1SsEEiUGGRS8HBgpAFORrPA}
Please navigate to http://3.18.106.46:14365/ in your favorite browser.
You have 60 seconds.

60秒以内であれば、手動で対応できそう。

$ curl http://3.18.106.46:14365/
<html>
	<body>
		<p>
		<a href="flag.html">This is the way.</a>
		</p>
	</body>
</html>
$ curl http://3.18.106.46:14365/flag.html
flag{romeo80389foxtrot:GFE5VkFIZauv1PpIkKAEEFlMOgB_wURVdHBZiKeCT9eD3CgAfar_4HQS_UqbYT7AMnE7iT7M_Hm-jxe_PUgtpIY}
flag{romeo80389foxtrot:GFE5VkFIZauv1PpIkKAEEFlMOgB_wURVdHBZiKeCT9eD3CgAfar_4HQS_UqbYT7AMnE7iT7M_Hm-jxe_PUgtpIY}