1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CTF(Crawling Chaos)のwriteupを書いてみた

Last updated at Posted at 2025-06-08

備忘録

問題を見るとリンクがあるので飛んでみる。
DB973E20-7381-4FFC-ADBD-153E7D47C842_1_201_a.jpeg

テキストボックスに入力しても何も変化がないので、開発者ツールでネットワークを調べる。
C60A114E-208D-464A-A251-047AC122740D_1_201_a.jpeg

すると、jquery.min.jsがブロックされている。
0A1DA3BB-6B74-4A7F-AD5D-A51C53025592_1_105_c.jpeg

どうやらjquery.min.jsはAPIにアクセスしているみたい。
CB9182D0-A2B0-4D46-B9C7-17F1EF53F2F0_1_105_c.jpeg

ソースコードを見ると、scriptタグで意味不明の「う〜にゃ〜」が出てくる。調べると、これはJSを難読化しているらしい。
711D2AE0-5D68-4E7E-9896-F56120F31B74_1_105_c.jpeg

続いて発生しているエラーを調べてみる。これは、今見ているWebサイトがHTTPSなのにAPIへはhttpでアクセスしてるよってエラー。つまり、APIへHTTPSでアクセスすればいいと予想できる。
15EF56A2-1DB0-4296-99CD-01F205C3914D_1_105_c.jpeg

とりあえずAPIにHTTPSでAPIにアクセスするようエディターにソースコードをコピペしローカルでブラウザ起動(最初は左下のGo Liveでサーバーとして起動したため、src部分が相対パスで認識されうまくアクセスできなかった…)
39CF9D87-0214-49F8-A522-9B98823305C9.png

テキストボックスに入力すると無事アラートが出るように!
エラーも消えてスッキリしたが、「う〜にゃ〜」は謎のまま。
55D4A78A-D203-4D6F-89D9-EA6DA0C8DA4A_1_105_c.jpeg

「う〜にゃ〜」の部分をconsole.logで囲って出力してみる。
647E228F-B9FF-4680-A41C-A9B6023456B0.png

すると、infoに大量の文字列が!
\u00などはuniコードエスケープシーケンスらしい。
最後らへんの$(function(){ 以降はJSのコードっぽいのでコピペしてAIに整形させてみた。
E9DEB21E-9E72-41D0-AB6D-67A9EE2C97A5_1_201_a.jpeg

コードを読むと、入力した配列のi文字目とi+1をかけた結果が配列pのi文字目と一致すれば「(」・ω・)」うー!(/・ω・)/にゃー!」アラートが出るらしい。
CD09D010-596B-473C-B93E-CE73D4E1B59A_1_105_c.jpeg

条件が分かったので仕様を満たすコードを作る。

// 入力文字列のi番目のuniコードの数値✖️(i+1)が配列pのi番目と一致すればOK
// つまり、t.charCodeAt(i)=p[i]/(i+1)が成立するuniコードを調べる

p = Array(70, 152, 195, 284, 475, 612, 791, 896, 810, 850, 737, 1332, 1469, 1120, 1470, 832, 1785, 2196, 1520, 1480, 1449);
input = ''
for (let i = 0; i < p.length; i++) {
    let charCode = p[i]/(i+1);
    input += String.fromCharCode(charCode);
    console.log(input);
}

作ったコードをindex.htmlに組み込むと、以下のようにフラグが出力される。
(フラグバレ防止のため、表示しているのは最初の部分のみ)
BD253B37-8AA0-4A18-9197-0D4BBDA0A765_1_105_c.jpeg

フラグを入力すると無事「う〜にゃ〜」アラートが表示される
260B628F-8E9A-449D-B369-9DE674A0A17B_1_105_c.jpeg

フラグを入力すると無事クリア!
777885EB-4718-417E-8FEF-338753BB7BC4.png

解いた問題を2週間振りに振り返ったが、解くのにかなりの時間かかった。定期的に振り返らないと一瞬で忘れそう^^;

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?