CVE-2021-46075
エクスプロイトタイトル: Vehicle Service Management System - 'Multiple' 特権昇格により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)でユーザー一覧セクションに移動し、「新規作成」ボタンをクリックします。
- 新しいユーザー作成のリンク http://localhost/vehicle_service/admin/?page=user/manage_user をコピーします。
- スタッフアカウント(Firefox)にはユーザー一覧セクションがありません。スタッフアカウントにはユーザー作成の権限がないためです。
- コピーしたリンクをブラウザB(Firefox)に貼り付けます。
- これでユーザー作成ページにアクセスできるようになります。
- 必要な詳細を入力し、「保存」ボタンをクリックします。
- 管理者アカウント(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)でカテゴリ一覧セクションに移動し、「新規作成」ボタンをクリックします。
- 新しいカテゴリ作成のリンク http://localhost/vehicle_service/admin/?page=maintenance/manage_category をコピーします。
- スタッフアカウント(Firefox)にはカテゴリ一覧セクションがありません。スタッフアカウントにはカテゴリ作成の権限がないためです。
- コピーしたリンクをブラウザB(Firefox)に貼り付けます。
- これでカテゴリ作成ページにアクセスできるようになります。
- 必要な詳細を入力し、「保存」ボタンをクリックします。
- 管理者アカウント(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)でサービス一覧セクションに移動し、「新規作成」ボタンをクリックします。
- 新しいサービス作成のリンク http://localhost/vehicle_service/admin/?page=maintenance/manage_service をコピーします。
- スタッフアカウント(Firefox)にはサービス一覧セクションがありません。スタッフアカウントにはサービス作成の権限がないためです。
- コピーしたリンクをブラウザB(Firefox)に貼り付けます。
- これでサービス作成ページにアクセスできるようになります。
- 必要な詳細を入力し、「保存」ボタンをクリックします。
- 管理者アカウント(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)に貼り付けます。
- これで設定ページにアクセスできるようになります。
- 必要な詳細を入力し、「保存」ボタンをクリックします。
- 管理者アカウント(Chrome)で設定セクション http://localhost/vehicle_service/admin/?page=system_info に移動します。
- 詳細が正常に更新されました。
- スタッフアカウントは設定ページにアクセスできるようになります。
- スタッフアカウントは設定を更新できるようになります。
影響:
リモート攻撃者は、通常は利用できないリソースへの昇格されたアクセス権を取得します。スタッフアカウントのユーザーは管理者リソースにアクセスし、CRUD操作を実行できるようになります。
緩和策:
以下を実装することを推奨します:
- 適切な特権アカウント管理
- すべての特権セッションの監視と管理
- 強力なパスワードポリシーとその実施
- ユーザー入力をサニタイズし、データベースを保護する