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


第22回 レースコンディション:タイミング依存の脆弱性探し

Hello there, ('ω')ノ

レースコンディションとは?

わかりやすい例:

  • 社内の経費申請システム
  • 一人1回しか申請できないはずなのに
  • 同時に複数回リクエストを送ると、二重申請できてしまう

このように「順番通りに処理されない」ことで発生する問題です。


実際によくあるパターン

  • ECサイト:在庫数を超える注文
  • 経費精算:二重払い
  • 勤怠システム:二重打刻
  • ファイルアップロード:同じファイル名で上書き

実際のチェック手順① 手動で試す

  1. 確認対象のシステムを開く
  2. 「確定」や「申請」ボタンを連打してみる

✅ 観察ポイント:

  • 二重申請になっていないか?
  • エラーメッセージが正しく表示されるか?
  • データベース側で重複データが登録されていないか?(開発担当者と連携)

実際のチェック手順② ツールを使う

手動では限界がある場合:

  • Burp Suite の Intruder 機能
  • OWASP ZAP のスクリプト機能

これらを使うと「ほぼ同時に複数リクエスト」を送ることができます。

設定例:

  • 同じリクエストを10回同時送信
  • 特に支払処理や更新処理を対象に

チェック対象になりやすい場所

✅ お金や在庫に関わる操作

✅ 社員情報やユーザー情報の更新操作

✅ 社内限定機能の管理画面


実務でのチェック例

例:経費申請システムの場合

  • 金額入力 → 申請ボタン連打
  • 「二重申請はできません」と出ればOK
  • 二重申請が通る → レースコンディション疑いあり

チェックリストまとめ

  • [ ] ボタン連打で二重操作が発生しないか確認したか?
  • [ ] 開発者用ツールやプロキシで同時リクエストを試したか?
  • [ ] データベース側で重複登録がないか確認したか?
  • [ ] 特に金銭や在庫管理に関わる部分を優先して確認したか?

注意事項

  • 本番環境でテストする場合は必ず許可を取ること
  • 実施する時間帯や影響範囲に注意すること
  • 開発担当者と連携しながら進めること

まとめ

  • レースコンディションは「タイミングのズレ」を突く脆弱性
  • 手動+ツールを使って同時操作を再現するのが基本
  • シンプルな連打テストから始めるだけでも発見できることがある

Best regards, (^^ゞ




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

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