CVE-2021-46075
エクスプロイトタイトル: Vehicle Service Management System - '複数'の権限昇格によりCRUD 操作が可能になる
CVE: CVE-2021-46075
CVSS: 7.2 HIGH
参考:
説明:
Sourcecodester Vehicle Service Management System 1.0 には権限昇格の脆弱性が存在します。スタッフアカウントのユーザーは管理者リソースにアクセスし、CRUD 操作を実行できます。
1. Vehicle Service Management System - 'ユーザーリスト' (/admin/?page=user/list) (/admin/?page=user/manage_user)
エクスプロイト:
- 管理者パネル http://localhost/vehicle_service/admin にアクセスします。
- ブラウザ A(Chrome)で管理者アカウントにログインします。
- ブラウザ B(Firefox)でスタッフアカウントにログインします。
- 管理者アカウント(Chrome)でユーザーリストセクションに移動し、Create New ボタンをクリックします。
- 新規ユーザー作成(Create New User)のリンク http://localhost/vehicle_service/admin/?page=user/manage_user をコピーします。
- スタッフアカウント(Firefox)にはユーザーリストセクションがありません。スタッフアカウントにはユーザーを作成する権限がないためです。
- コピーしたリンクをブラウザ B(Firefox)に貼り付けます。
- これでユーザー作成ページにアクセスできます。
- 必要な詳細を入力し、Save ボタンをクリックします。
- 管理者アカウント(Chrome)でユーザーリストセクション http://localhost/vehicle_service/admin/?page=user/list に移動します。
- 新しいユーザーが正常に作成されました。
- スタッフアカウントはユーザーリストページとユーザー作成ページにアクセスできます。
- スタッフアカウントはユーザーの作成・閲覧・更新・削除ができます。
2. Vehicle Service Management System - 'カテゴリリスト' (/admin/?page=maintenance/category) (/admin/?page=maintenance/manage_category)
エクスプロイト:
- 管理者パネル http://localhost/vehicle_service/admin にアクセスします。
- ブラウザ A(Chrome)で管理者アカウントにログインします。
- ブラウザ B(Firefox)でスタッフアカウントにログインします。
- 管理者アカウント(Chrome)でカテゴリリストセクションに移動し、Create New ボタンをクリックします。
- 新規カテゴリ作成(Create New Category)のリンク http://localhost/vehicle_service/admin/?page=maintenance/manage_category をコピーします。
- スタッフアカウント(Firefox)にはカテゴリリストセクションがありません。スタッフアカウントにはカテゴリを作成する権限がないためです。
- コピーしたリンクをブラウザ B(Firefox)に貼り付けます。
- これでカテゴリ作成ページにアクセスできます。
- 必要な詳細を入力し、Save ボタンをクリックします。
- 管理者アカウント(Chrome)でカテゴリリストセクション http://localhost/vehicle_service/admin/?page=maintenance/category に移動します。
- 新しいカテゴリが正常に作成されました。
- スタッフアカウントはカテゴリリストページとカテゴリ作成ページにアクセスできます。
- スタッフアカウントはカテゴリの作成・閲覧・更新・削除ができます。
3. Vehicle Service Management System - 'サービスリスト' (/admin/?page=maintenance/services) (/admin/?page=maintenance/manage_service)
エクスプロイト:
- 管理者パネル http://localhost/vehicle_service/admin にアクセスします。
- ブラウザ A(Chrome)で管理者アカウントにログインします。
- ブラウザ B(Firefox)でスタッフアカウントにログインします。
- 管理者アカウント(Chrome)でサービスリストセクションに移動し、Create New ボタンをクリックします。
- 新規サービス作成(Create New Service)のリンク http://localhost/vehicle_service/admin/?page=maintenance/manage_service をコピーします。
- スタッフアカウント(Firefox)にはサービスリストセクションがありません。スタッフアカウントにはサービスを作成する権限がないためです。
- コピーしたリンクをブラウザ B(Firefox)に貼り付けます。
- これでサービス作成ページにアクセスできます。
- 必要な詳細を入力し、Save ボタンをクリックします。
- 管理者アカウント(Chrome)でサービスリストセクション http://localhost/vehicle_service/admin/?page=maintenance/services に移動します。
- 新しいサービスが正常に作成されました。
- スタッフアカウントはサービスリストページとサービス作成ページにアクセスできます。
- スタッフアカウントはサービスの作成・閲覧・更新・削除ができます。
4. Vehicle Service Management System - '設定' (/admin/?page=system_info)
エクスプロイト:
- 管理者パネル http://localhost/vehicle_service/admin にアクセスします。
- ブラウザ A(Chrome)で管理者アカウントにログインします。
- ブラウザ B(Firefox)でスタッフアカウントにログインします。
- 管理者アカウント(Chrome)で設定セクションに移動します。
- 設定セクションのリンク http://localhost/vehicle_service/admin/?page=system_info をコピーします。
- スタッフアカウント(Firefox)には設定セクションがありません。スタッフアカウントには設定にアクセスする権限がないためです。
- コピーしたリンクをブラウザ B(Firefox)に貼り付けます。
- これで設定ページにアクセスできます。
- 必要な詳細を入力し、Save ボタンをクリックします。
- 管理者アカウント(Chrome)で設定セクション http://localhost/vehicle_service/admin/?page=system_info に移動します。
- 詳細が正常に更新されました。
- スタッフアカウントは設定ページにアクセスできます。
- スタッフアカウントは設定を更新できます。
影響:
リモートの攻撃者は、通常は利用できないリソースへの昇格したアクセスを獲得できます。スタッフアカウントのユーザーは管理者リソースにアクセスし、CRUD 操作を実行できます。
緩和策:
以下を実装することを推奨します:
- 特権アカウントの適切な管理
- すべての特権セッションの監視と管理
- 強力なパスワードポリシーとその適用
- ユーザー入力のサニタイズとデータベースの保護