※一部解答が貼ってあるのでこれからチャレンジする人は気をつけてね!
前回の続き。
Capture the Flagへの挑戦備忘録です。
主にコンピュータセキュリティに関する問題を出題します。(後略)
http://ksnctf.sweetduet.info/
前回諦めた問題が解けたので、その分だけ書いちゃいます。
※第3問のヒントがモロに書いてあるのでご注意を。
3. Crawling Chaos
一言で申し上げると「病的かつ冒涜的な禍々しい混沌とした名状しがたいJavaScript難読化問題」。
最初に見たときは絶望したもんでしたが、同僚と相談しながら見ていったところ、
- <script>タグで囲まれてる状態でJSエラーが出てない
- 見た目は変だけどJSとして認識できてるらしい
- よく見るとイコールとカンマが同数含まれてるよね
- つまりカンマ区切りの代入式の集まりなのでは?
みたいなことが分かりました。
あとはFirebugでブレークポイント付けながらごにょごにょと。
変数宣言も変数の中身も普段あんまり見ない流れでこわかったです。
最終的にはeval()か何かが使われてたのかなー。JSerじゃないので細かいところはよく分からんです。
とりあえずJavaScriptこわい。
あとあれだけ珍妙な難読化をしても、僕みたいな非JSerが解けちゃうんだから、JSの難読化によるセキュリティにも限界があるということですね。
余談
同僚が4. Villager Aの正答者に名を連ねてるこわい。