この大会は2021/3/13 19:00(JST)~2021/3/15 7:00(JST)に開催されました。
今回もチームで参戦。結果は747点で400チーム中254位でした。
自分で解けた問題をWriteupとして書いておきます。
Flag Format (Warmup)
問題にフラグが書いてあった。
vishwaCTF{welcome_to_vishwaCTF}
bot not not bot (Web)
page.html~page500.htmlまでリンクがある。この中で意味のあるページは一部。プログラムで確認すると、例えばpage8.htmlに意味のある情報があり、文字とpageが書いてある。pageがインデックスとなると推測できるので、スクリプトにして文字を並び替える。
import requests import re url_format = 'https://bot-not-not-bot.vishwactf.com/page%d.html' pattern = '\<h1\>(.+)\</h1\>\<p\>Useful Page\<br\>(\d+)\</p\>' flag = [' '] * 26 for i in range(1, 501): print '[+] flag =', ''.join(flag) url = url_format % i r = requests.get(url) if 'Useless' not in r.text: m = re.search(pattern, r.text) c = m.group(1) page = int(m.group(2)) flag[page] = c print '[*] flag =', ''.join(flag)
実行結果は以下の通り。
: [+] flag = vishwaCTF{r0bot_1 _t00_0P [+] flag = vishwaCTF{r0bot_1 _t00_0P} [+] flag = vishwaCTF{r0bot_1 _t00_0P} [+] flag = vishwaCTF{r0bot_1 _t00_0P} [+] flag = vishwaCTF{r0bot_1 _t00_0P} [+] flag = vishwaCTF{r0bot_1 _t00_0P} [+] flag = vishwaCTF{r0bot_1 _t00_0P} [+] flag = vishwaCTF{r0bot_1 _t00_0P} [+] flag = vishwaCTF{r0bot_1 _t00_0P} [+] flag = vishwaCTF{r0bot_1 _t00_0P} [+] flag = vishwaCTF{r0bot_1 _t00_0P} [+] flag = vishwaCTF{r0bot_1 _t00_0P} [+] flag = vishwaCTF{r0bot_1 _t00_0P} [+] flag = vishwaCTF{r0bot_1 _t00_0P} [+] flag = vishwaCTF{r0bot_1 _t00_0P} [+] flag = vishwaCTF{r0bot_1 _t00_0P} [+] flag = vishwaCTF{r0bot_1 _t00_0P} [+] flag = vishwaCTF{r0bot_15_t00_0P} [+] flag = vishwaCTF{r0bot_15_t00_0P} [+] flag = vishwaCTF{r0bot_15_t00_0P} [+] flag = vishwaCTF{r0bot_15_t00_0P} [+] flag = vishwaCTF{r0bot_15_t00_0P} [+] flag = vishwaCTF{r0bot_15_t00_0P} [+] flag = vishwaCTF{r0bot_15_t00_0P} [+] flag = vishwaCTF{r0bot_15_t00_0P} [+] flag = vishwaCTF{r0bot_15_t00_0P} [+] flag = vishwaCTF{r0bot_15_t00_0P} [*] flag = vishwaCTF{r0bot_15_t00_0P}
vishwaCTF{r0bot_15_t00_0P}