CVE-2021-46080
エクスプロイトタイトル: Vehicle Service Management System - '複数の' クロスサイトリクエストフォージェリ (CSRF) により格納型クロスサイトスクリプティング (XSS)
CVE: CVE-2021-46080
CVSS: 4.8 中
参考資料:
説明:
Vehicle Service Management System 1.0 にはクロスサイトリクエストフォージェリ (CSRF) の脆弱性が存在します。CSRF 攻撃が成功すると、格納型クロスサイトスクリプティング (XSS) の脆弱性が発生します。
1. Vehicle Service Management System - 'メカニック一覧' (/admin/?page=mechanics)
エクスプロイト:
- 管理パネル http://localhost/vehicle_service/admin にアクセスする。
- 2つの管理者アカウントを作成する。
- ブラウザA (Chrome) で管理者1アカウントにログインする。
- ブラウザB (Firefox) で管理者2アカウントにログインする。
- 管理者1アカウント(Chrome) で [メカニック一覧] セクションに移動し、[新規作成] ボタンをクリックする。
- 以下のペイロードを [氏名] 入力フィールドに注入する。
ペイロード:
"><script>alert(document.cookie)</script>
- [保存] ボタンをクリックする。
- burpsuite でリクエストをキャプチャし、CSRF HTML ファイルを生成する。
- CSRF HTML ファイルを保存する。例: CSRF.html
- ブラウザB (Firefox) で CSRF.html ファイルを参照する。
- ブラウザB (Firefox) で [メカニック一覧] セクションに移動する。
- 悪意のある JavaScript コードが実行される。
2. Vehicle Service Management System - 'サービスリクエスト' (/admin/?page=service_requests)
エクスプロイト:
- 管理パネル http://localhost/vehicle_service/admin にアクセスする。
- 2つの管理者アカウントを作成する。
- ブラウザA (Chrome) で管理者1アカウントにログインする。
- ブラウザB (Firefox) で管理者2アカウントにログインする。
- 管理者1アカウント(Chrome) で [サービスリクエスト] セクションに移動し、[新規作成] ボタンをクリックする。
- 以下のペイロードを [所有者連絡先] 入力フィールドに注入する。
ペイロード:
"><script>alert(document.cookie)</script>
- [リクエストを保存] ボタンをクリックする。
- burpsuite でリクエストをキャプチャし、CSRF HTML ファイルを生成する。
- CSRF HTML ファイルを保存する。例: CSRF.html
- ブラウザB (Firefox) で CSRF.html ファイルを参照する。
- ブラウザB (Firefox) で [サービスリクエスト] セクションに移動する。
- 新しく作成されたサービスリクエストを選択し、[表示] の [アクション] をクリックする。
- 悪意のある JavaScript コードが実行される。
3. Vehicle Service Management System - 'カテゴリ一覧' (/admin/?page=maintenance/category)
エクスプロイト:
- 管理パネル http://localhost/vehicle_service/admin にアクセスする。
- 2つの管理者アカウントを作成する。
- ブラウザA (Chrome) で管理者1アカウントにログインする。
- ブラウザB (Firefox) で管理者2アカウントにログインする。
- 管理者1アカウント(Chrome) で [カテゴリ一覧] セクションに移動し、[新規作成] ボタンをクリックする。
- 以下のペイロードを [カテゴリ名] 入力フィールドに注入する。
ペイロード:
"><script>alert(document.cookie)</script>
- [保存] ボタンをクリックする。
- burpsuite でリクエストをキャプチャし、CSRF HTML ファイルを生成する。
- CSRF HTML ファイルを保存する。例: CSRF.html
- ブラウザB (Firefox) で CSRF.html ファイルを参照する。
- ブラウザB (Firefox) で [カテゴリ一覧] セクションに移動する。
- 悪意のある JavaScript コードが実行される。
4. Vehicle Service Management System - 'サービス一覧' (/admin/?page=maintenance/services)
エクスプロイト:
- 管理パネル http://localhost/vehicle_service/admin にアクセスする。
- 2つの管理者アカウントを作成する。
- ブラウザA (Chrome) で管理者1アカウントにログインする。
- ブラウザB (Firefox) で管理者2アカウントにログインする。
- 管理者1アカウント(Chrome) で [サービス一覧] セクションに移動し、[新規作成] ボタンをクリックする。
- 以下のペイロードを [サービス名] 入力フィールドに注入する。
ペイロード:
"><script>alert(document.cookie)</script>
- [保存] ボタンをクリックする。
- burpsuite でリクエストをキャプチャし、CSRF HTML ファイルを生成する。
- CSRF HTML ファイルを保存する。例: CSRF.html
- ブラウザB (Firefox) で CSRF.html ファイルを参照する。
- ブラウザB (Firefox) で [サービス一覧] セクションに移動する。
- 悪意のある JavaScript コードが実行される。
5. Vehicle Service Management System - 'ユーザ一覧' (/admin/?page=user/list)
エクスプロイト:
- 管理パネル http://localhost/vehicle_service/admin にアクセスする。
- 2つの管理者アカウントを作成する。
- ブラウザA (Chrome) で管理者1アカウントにログインする。
- ブラウザB (Firefox) で管理者2アカウントにログインする。
- 管理者1アカウント(Chrome) で [ユーザ一覧] セクションに移動し、[新規作成] ボタンをクリックする。
- 以下のペイロードを [名] 入力フィールドに注入する。
ペイロード:
"><script>alert(document.cookie)</script>
- [保存] ボタンをクリックする。
- burpsuite でリクエストをキャプチャし、CSRF HTML ファイルを生成する。
- CSRF HTML ファイルを保存する。例: CSRF.html
- ブラウザB (Firefox) で CSRF.html ファイルを参照する。
- ブラウザB (Firefox) で [ユーザ一覧] セクションに移動する。
- 悪意のある JavaScript コードが実行される。
6. Vehicle Service Management System - '設定' (/admin/?page=system_info)
エクスプロイト:
- 管理パネル http://localhost/vehicle_service/admin にアクセスする。
- 2つの管理者アカウントを作成する。
- ブラウザA (Chrome) で管理者1アカウントにログインする。
- ブラウザB (Firefox) で管理者2アカウントにログインする。
- 管理者1アカウント(Chrome) で [設定] セクションに移動する。
- 以下のペイロードを [システム名] 入力フィールドに注入する。
ペイロード:
"><script>alert(document.cookie)</script>
- [更新] ボタンをクリックする。
- burpsuite でリクエストをキャプチャし、CSRF HTML ファイルを生成する。
- CSRF HTML ファイルを保存する。例: CSRF.html
- ブラウザB (Firefox) で CSRF.html ファイルを参照する。
- ブラウザB (Firefox) で [設定] セクションに移動する。
- 悪意のある JavaScript コードが実行される。
影響:
複数のエンドポイントにクロスサイトリクエストフォージェリの脆弱性が存在し、格納型クロスサイトスクリプティングの脆弱性につながります。
緩和策:
以下の実装を推奨します:
- セッショントークンと同様に、高エントロピーで予測不可能であること。
- ユーザーのセッションに結びついていること。
- 関連するアクションが実行される前に、毎回厳密に検証されること。