以下の内容はhttps://cysec148.hatenablog.com/entry/2025/07/18/073400より取得しました。


第19回 クロスサイトリクエストフォージェリ(CSRF)の見つけ方

Hello there, ('ω')ノ

CSRFが成立する条件

  1. 対象サイトにログイン済みであること
  2. 特定の操作が「確認なし」で実行できること
  3. セキュリティトークンなどがついていないこと

実際のチェック手順① 対象となる操作を洗い出す

CSRFリスクがあるのは「データ更新系」の操作です。

✅ 例:

  • パスワード変更
  • メールアドレス変更
  • 経費申請の承認
  • ユーザー削除

画面上でボタンやフォーム送信が必要な操作をリストアップします。


実際のチェック手順② リクエスト内容を確認する

① ブラウザ開発者ツール → Networkタブ

② 対象操作を実行 → その時のリクエストを確認

✅ 観察ポイント:

  • POSTリクエストか?(GETでも注意)
  • CSRFトークンらしきパラメーターが含まれているか? 例:csrf_token、_token、authenticity_token

含まれていない場合 → 要注意です。


実際のチェック手順③ 簡単なテストHTMLを作成して試す

以下のようなHTMLをローカルで作成します:

<form action="https://intra.example.co.jp/user/delete" method="POST">
  <input type="hidden" name="user_id" value="123">
  <input type="submit" value="送信">
</form>

このHTMLを開いてボタンを押すだけで操作が成立してしまう場合 → CSRF脆弱性ありです。


CSRF対策がされている場合の特徴

  • フォーム内にランダムなトークンが含まれている
  • RefererやOriginヘッダーでチェックされている

ブラウザ開発者ツール → Headersタブ → Request Headers で確認できます。


社内システムでのよくある盲点

  • 経費申請や承認機能
  • 勤怠打刻操作
  • 管理者権限によるユーザー管理画面

「確認画面なし」「ワンクリックで確定」タイプの操作は特に注意が必要です。


チェックリストまとめ

  • [ ] 操作対象ページにCSRFトークンが含まれているか?
  • [ ] POSTリクエスト時にRefererやOriginヘッダーが使われているか?
  • [ ] テスト用HTMLフォームを使って操作再現ができるか?
  • [ ] 本番環境で試す場合は必ず許可を取っているか?

注意事項

  • 本番環境でのテストは慎重に!
  • テストは自己責任で、安全な環境で行うこと

Best regards, (^^ゞ




以上の内容はhttps://cysec148.hatenablog.com/entry/2025/07/18/073400より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14