
Proof-of-Concept für eine gespeicherte XSS-Schwachstelle im Hotel and Tourism Reservation System 1.0, das die nicht authentifizierte Injektion und die Übernahme von Admin-Sitzungen demonstriert.
| Feld | Details |
|---|
| Titel | Hotel- und Tourismus-Reservierungssystem – Stored Cross-Site Scripting (XSS) |
| CVE-ID | Zuweisung ausstehend |
| Anbieter | code-projects.org |
| Anbieter-URL | https://code-projects.org/hotel-and-tourism-reservation-in-php-with-source-code/ |
| Produkt | Hotel- und Tourismus-Reservierungssystem |
| Version | 1.0 |
| Schwachstellentyp | Stored Cross-Site Scripting |
| CWE | CWE-79 |
| CVSS-Score | 8.3 (Hoch) |
| CVSS-Vektor | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:L |
| Betroffener Endpunkt (Injection) | /ht/tour.php |
| Betroffener Endpunkt (Trigger) | /ht/admin/tour_reserves.php |
| Authentifizierung erforderlich | Nein (Injection) / Ja (Trigger) |
| Remote ausnutzbar | Ja |
| Forscher | Syed Imad Uddin Alvi |
Im Hotel- und Tourismus-Reservierungssystem 1.0 besteht eine Stored-Cross-Site-Scripting-Schwachstelle (XSS) in der Tourbuchungsfunktion. Ein nicht authentifizierter Angreifer kann beliebiges JavaScript in die Buchungsformularfelder unter /ht/tour.php injizieren. Die bösartige Nutzlast wird ohne Bereinigung in der Datenbank gespeichert. Wenn ein Administrator die Tourreservierungs-Verwaltungsseite unter /ht/admin/tour_reserves.php aufruft, wird die gespeicherte Nutzlast im Browser-Kontext des Administrators ausgeführt – was Session-Hijacking, Diebstahl von Anmeldedaten oder die vollständige Übernahme des Admin-Kontos ermöglicht.
Datei: tour.php (Injektionspunkt)
Datei: admin/tour_reserves.php (Ausführungspunkt)
Parameter: name , email , people , number / Kontaktfelder (POST)
Speicherung: hotel_db – Tourreservierungstabelle
Einrichtung: Installieren Sie das Hotel- und Tourismus-Reservierungssystem 1.0 auf XAMPP und greifen Sie unter http://<target>/ht/ darauf zu.
Schritt 1 – Navigieren Sie als nicht authentifizierter Benutzer zur Tourbuchungsseite:
http://<target>/ht/tour.php?tour=4
Schritt 2 – Geben Sie die XSS-Nutzlast in das Namensfeld oder in ein beliebiges anderes Feld ein (alle Felder sind anfällig für XSS) und klicken Sie dann auf Jetzt buchen:
<script>alert(1)</script>
Ergebnis: „Reservierung erfolgreich erstellt!" – Die Nutzlast wird nun in der Datenbank gespeichert.

Schritt 3 – Melden Sie sich als Administrator an und navigieren Sie zum Tourreservierungs-Panel:
http://<target>/ht/admin/tour_reserves.php
Ergebnis: Die gespeicherte XSS-Nutzlast wird sofort im Browser-Kontext des Administrators ausgeführt.

Ein nicht authentifizierter Angreifer kann:
Das Buchungsformular unter tour.php speichert Benutzereingaben direkt ohne Bereinigung in der Datenbank. Das Admin-Panel unter tour_reserves.php gibt den gespeicherten Wert ohne Ausgabekodierung roh in die HTML-Antwort aus, sodass injizierte Skripte ausgeführt werden können.
// Bei der Ausgabe – immer vor dem Rendern kodieren
echo htmlspecialchars($reservation['name'], ENT_QUOTES, 'UTF-8');
** Imad Alvi** – Unabhängiger Sicherheitsforscher GitHub: Xmyronn