かわろぐ

技術、ボルダリング、セキュリティ、その他もろもろ

MENU

WhiteHat Wargame Challenge 02 Web001 Write Up

3/25 11:00 ~ 19:00 (JST)の期間に開催された WhiteHat Wargame Challenge 02 の Write Up です。

このCTFはクイズ形式のCTFで、レベルは入門者でも少し頑張れば解ける、比較的簡単な方でした。

他にも For001 , For002 もWriteUp書いていますので合わせてどうぞ。

Web001 WriteUp

今回は、Web001のWriteUpです。この問題はWeb系の問題でした。問題文は以下の通り。

Have you ever code JavaScript? Find flag in Website: web01.wargame.whitehat.vn.

Submit WhiteHat{sha1(flag)}
Example: flag = Hello World
sha1("Hello World") = 0a4d55a8d778e5022fab701977c5d840bbc486d0
You must submit: WhiteHat{0a4d55a8d778e5022fab701977c5d840bbc486d0}
(all hash charactera in lowercase)

問題文を訳すと、あなたはJavascriptを書いた事がありますか?フラグはこのWebサイトの中にあるよ。でしょうか。 2行目以降はすべての問題に共通して付いている、フラグの作り方ですね。

Webサイトを確認する

まずは問題文で与えられたURLへアクセスしてみます。すると、以下の画像の様な画面が表示されました。

f:id:kawa_xxx:20170326100048p:plain

Click me と書いてあるボタンがあるので、クリックしてみると、以下の画像の様に “This is a javascript challenge” と書かれたダイアログボックスが表示されました。

f:id:kawa_xxx:20170326100056p:plain

Javascriptならとりあえずディベロッパーツールで見てみようということで、 hello.js ファイルを見てみるとバイト列で何やら大量の文字列があるようです。

f:id:kawa_xxx:20170326100059p:plain

4行目にブレークポイントを貼って、 showFlagの中身をみてみると 何かを処理してそうなJavascriptのコードが更に出てきました。 が、よくよくみると下から4行目のif文の中にバイト列と変換が入った状態でパスワードがまんま入っています。 痕はこれをコンソールに渡してあげて、パスワードでした。

f:id:kawa_xxx:20170326100050p:plain

フラグを作る

問題文にもあるようにFlagはパスワードを sha1 でハッシュ化して更に WhiteHat{} でくくるというちょっとめんどくさい仕様になっています。

パスワードは youaregod~~~~~~~! なのでこれを sha1 でハッシュ化すると 1c0e74d5f61b6c3901a277bdd490ad070265f027 なので、フラグは WhiteHat{1c0e74d5f61b6c3901a277bdd490ad070265f027} でした。

めでたしめでたし。

おわりに

今回の WhiteHat Wargame Challenge 02 は比較的簡単なCTFだったので競技時間内に3問も解けましたが、Defconなどもっとレベルの高いCTFでも競技時間内に1問でも解けるようになりたいです。精進します。

サイバーセキュリティプログラミング ―Pythonで学ぶハッカーの思考

サイバーセキュリティプログラミング ―Pythonで学ぶハッカーの思考

  • 作者: Justin Seitz,青木一史,新井悠,一瀬小夜,岩村誠,川古谷裕平,星澤裕二
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2015/10/24
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログ (10件) を見る