LINE2018.11.12本日(2018/11/12)に前回の徳丸日記のCSRF初級編の回答が出ていたので、このブログでも解説します。続いて、中級の問題も出ていましたが、この記事では初級編の解答のみの解説となります。内容について誤り等があれば優しく教えてくれると助かります。実際の解答やPoCについては徳丸日記を参照していただくのが一番かと思います。解答:間違ったCSRF対策~初級編~この記事では普段脆弱性診断を実施している際にやっている診断方法で検証をし、脆弱性を見つけましょう。プロキシツール「burp」を使用し全ての画面にアクセスを行いリクエスト内容を確認してみます。すると、最後の「chgmail.php」のリクエスト内容で以下のように処理されています。(ブラウザはFirefox)を使用しています。1mail=csrftest%40example.com&token=5eac682c2d4e732aac203a766b35374fa96e10cd85a09448このリクエストを送信したレスポンスでメールアドレスが変更しましたと表示されているため、このリクエストを検査しCSRFが存在しているか調査します。調査には「burp」の機能の一つである「Repeater」を使用します。リクエスト内容の個所で「Ctrl+r」を押すことでリクエスト内容を「Repeater」に送ることができます。同じリクエスト内容を送信してみます。以下のように「Repeater」画面で「Go」ボタンを押せばOKです。結果は「正規の画面からご利用ください」と表示され、処理は失敗します。パラメータ「token」を見ていそうですので、次に「token」の値を削除してみます。先ほどと同様に「正規の画面からご利用ください」と表示され、処理は失敗します。次にパラメータ「token」ごと削除して送信してみましょう。すると今度は以前までとは異なり、処理が成功してしまいます。このため、このリクエストを送信することで処理は成功します。「Referer」ヘッダを確認している場合もあるため、削除して確認してみますが、ちゃんと成功します。以上の調査から、該当の処理にCSRFが発生する要因があることがわかりました。検証時や診断時の注意なお、CSRFの確認時について、実際の検査時においても気を付ける箇所があります。それは、手作業での検査時に「chgmailform.php」にアクセス後に「メールアドレス変更」ボタンを押下して、burpでリクエストを変更して処理を行った際は確認ができないことです。以下のように「chgmailform.php」にアクセスし、メールアドレスに値を入力します。On」にし、ブラウザからのリクエストを変更します。すると、パラメータ「token」はリクエスト内に含まれていませんが、以下のように処理は失敗します。ソースを読めば、「chgmailform.php」にアクセスした際に「token」の値がセッションIDにも保存されているため、失敗することがわかりますが、本当にブラックボックスで検査した際は判定漏れする可能性があるので、今回のような処理になっている場合もあることを考慮して検査する必要がありますね。最後に徳丸日記のCSRFの問題初級編の解説を行いました。非常にいい問題だなと思いました。次の中級編も出ていたので、こちらも取り組んでいこうと思います。ソースを読んでもわからない方もいるかもしれませんが、その際は実際にローカルの環境(VM等)を実際に作成し、徳丸日記の解答を見ながらでもいいので、手を動かしてやってみることが理解の近道になると思います。不明点や要望やこういったこともやって欲しいとの要望があれば、お問い合わせページやコメント、ツイッターからでも結構ですので、気軽にご連絡ください。LINEtokoroten0813をフォローするtokoroten0813猫とセキュリティ関連記事セキュリティVeraCryptを使いノートPC紛失による情報漏洩を抑制しよう!セキュリティのニュースを仕事柄よく見ていますが、ノートPC等の端末の紛失の話をよく見かけます。そもそもノートPC等の端末を紛失してしまった時点で問題あるのですが、その際でも被害を最小限に抑える対策をしておくのも必要かと思います。2018.09.23セキュリティARPとARPスプーフィング2前回に引き続き、ARPスプーフィングを記事にしていきます。今回はツールのインストールと動作確認を行っていきます。私は自分の管理する環境で実施しており、該当ツールを外部の自分の管轄外の環境で他人に対して実施した場合、犯罪になりますのであらかじめご認識ください。2018.08.07セキュリティSQLインジェクションのデモをする環境を構築する1昨日の私は以下の勉強会で、スピーカーとして発表を行っていました。そこで、SQLインジェクション(以降SQLi)のデモを簡単に行いました。2018.06.26セキュリティOSコマンドインジェクションのデモをする環境を構築する1SSIインジェクション、SQLインジェクションとインジェクション系のデモ環境を作成してきましたが、次はOSコマンドインジェクションのデモ環境を作成していきます。先に作成した二つよりはサクッとできると思っています。3に「継続的な脆弱性管理」というものがあります。それを調べていた際に「OpenSCAP」という面白そうなツールを見つけたのでそれについて記事にしていきます。前回このブログのSSL化を行いました。全てのページおいてHTTPでのアクセスはHTTPSにリダイレクトされるようになったかと思います。不具合等があれば教えて頂けると助かります。コメントをキャンセルメールアドレスが公開されることはありません。コメント名前メールアドレスサイト上に表示された文字を入力してください。29tokoroten0813猫が大好きなセキュリティエンジニアです。この業界に入って8年目になりました。妻と子供が二人います。秋葉原でやっているセキュリティの勉強会に毎月参加していますので、興味がある方はご連絡ください。猫の話やセキュリティに関わる話、IT業界、育児等特にこだわりを持たずに記事にしていく予定です。現在前職を退職し、絶賛個人で活動中です。セキュリティ関連で困ったことがあれば気軽に相談いただければ喜びます。Controls7ISMS3ニュース19資格10勉強会44家庭・育児20息抜き11猫20運動4。