Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20161114 よくわかるcsrf

1,107 views

Published on

what is CSRF?

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

20161114 よくわかるcsrf

  1. 1. よくわかるCSRF 実例 spin13
  2. 2. CSRF(クロスサイトリクエストフォージェリ) ユーザが対象のサイトのセッションを保持して いるのを利用して対象サイトでユーザの意図し ない処理をさせる(かなり語弊がある気がする)
  3. 3. CSRF 被害例 ・ブログ等で勝手に投稿される ・勝手にツ◯ートされる(あそこは基本的に対策されてるから 大丈夫) ・勝手に会員サイトのユーザ設定等が変えられる ・勝手にメールが送られる(こわい)
  4. 4. CSRF 簡単な例 POSTした内容を表示する超簡単なやつを用意
  5. 5. CSRF 簡単な例 めっちゃシンプル
  6. 6. CSRF ここに表示させれば成功ということに
  7. 7. CSRF こんなのを用意
  8. 8. CSRF
  9. 9. CSRF 大事なのはこの3つの行 <body onload="document.getElementById('form').submit()"> <form id="form" target="frame" method="POST" action="http://xxxxxx.com/yyy/zzz.php"> <iframe id="frame" width="1" height="1"></iframe>
  10. 10. CSRF <body onload="document.getElementById('form').submit()"> <form id="form" target="frame" method="POST" action="http://xxxxxx.com/yyy/zzz.php"> <iframe id="frame" width="1" height="1"></iframe> bodyが読み込まれたらformの中身をsubmitしている
  11. 11. CSRF 秘密のiframe
  12. 12. CSRF 実行するとこんな感じのができあがる
  13. 13. CSRF ここがそれぞれ対 象サイトのinputに 一致している必要 がある
  14. 14. CSRF 実際には 設定変更のPOST先にパラメータを入れ込むと勝手に設定が変更されたりす る パスワードやメールアドレスが変更されてしまうと ちゅどーん
  15. 15. CSRF 対策 ・hiddenでauth_tokenを仕込んで,POSTされるときにそいつをチェックされる ようにする ・セッションIDをそのままauth_tokenに入れてチェックする場合もある ※なにかしらの手段でセッションIDが漏洩したら 終わる
  16. 16. CSRF Refererをチェックするのも有効ではあるが,Refererを送出 しない設定にしているユーザもいる

×