Wakuwaku P

WakuwakuP

Contact

KOSEN セキュリティコンテスト2017に参加してきました.

security

KOSENセキュリティコンテスト2017に参加してきました.

いろいろあって人数の穴を埋めるために駆り出されました.

本当はプロコンで行けなかったハッチポッチフェスティバルのディレイビューイングの予定だったんですけどね……

人数合わせとして参加ですが,趣味の時間と交換してきているのでそれなりに頑張りました.

僕の担当はWeb系でした(比較的必要ツールが少ないからです).

というわけでWeb系の問題の解き方について

4問ありましたが1個目はクッソ簡単だったらしく僕が問題を確認する前にメンバーが答えていたので知らんです.

灯台下暗し

これについては会場で解説がありましたが,ヒントに書いてある通りに何も考えず以下にアクセスするだけです.

/data.db

そしてバイナリエディタで開いて見てみると

sckosen-toudai.png

こんな感じですね.

Web1

これはかなり苦しみました.

しかし,デバッグ最強だった.

とりあえずjavascriptを読んでいきます.

難読化されたjavascript

読みにくすぎるので改行とインデントくらい合わせます.

改行された難読化されたjavascript

かなり読みやすくなりますね. ここまで来たら変数名とかがキチガイなだけの普通のjavascriptです.

各行一般的な処理が書かれています(逸般的な書き方してるけど).
各行にブレークポイントを設置して一行ずつ処理を見ていきます.
また,怪しい変数かなって思うやつを調べます.
今回は10行目の無名関数内の __ (アンダーバー2つ)の配列が怪しいよねってことでWatchに追加します.

ブレークポイントを追加したjavascript

そうしたらリロードしてjavascriptを走らせます.

なにかが起きた瞬間

18行目で1つ目の要素が文字列に置き換えられました.これは何かがある.ここには何かがある.
順番に文字列に置き換えてから,全部をアンダーバーに置き換えているようです.
そのまま見ていくとFlagが出ます.

繰り返した結果

ちなみにmの中身は関数名が入っているのでこれを使って関数を呼び出しているようです.

Web2

難読javascript問題(2)ですね

パズルになっています.

alert(1);を作ればいいようなので適当に作ります.

最初に目を付けるべきなのは最後の箱です.
ここは文字列の連結をしているようです.
alert(1);の最後は(1)があるので,とりあえず(1)を入れます.

次に見るのは 0x52, 0x54 です. これはASCIIコードで rt です.
ということはこの手前3つの箱には ale を作るようにしたら良さそうです.
(101) これはASCIIコードで e です
同じノリで他2つ埋めます. これで2行を埋め終わりました.

これで2行目は終わりです.

力尽きたので続きは寮についてからにします.

Written on October 22, 2017