
Preuve de concept pour une vulnérabilité XSS stockée dans Hotel and Tourism Reservation System 1.0, démontrant une injection non authentifiée et le détournement de session administrateur.
| Champ | Détails |
|---|
| Titre | Système de réservation hôtelière et touristique - Cross-Site Scripting (XSS) stocké |
| ID CVE | Attribution en attente |
| Vendeur | code-projects.org |
| URL du vendeur | https://code-projects.org/hotel-and-tourism-reservation-in-php-with-source-code/ |
| Produit | Système de réservation hôtelière et touristique |
| Version | 1.0 |
| Type de vulnérabilité | Cross-Site Scripting stocké |
| CWE | CWE-79 |
| Score CVSS | 8.3 (Élevé) |
| Vecteur CVSS | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:L |
| Point d'entrée affecté (Injection) | /ht/tour.php |
| Point d'entrée affecté (Déclenchement) | /ht/admin/tour_reserves.php |
| Authentification requise | Non (injection) / Oui (déclenchement) |
| Exploitable à distance | Oui |
| Chercheur | Syed Imad Uddin Alvi |
Une vulnérabilité de Cross-Site Scripting (XSS) stocké existe dans la fonctionnalité de réservation de circuits touristiques du Système de réservation hôtelière et touristique 1.0. Un attaquant non authentifié peut injecter du JavaScript arbitraire dans les champs du formulaire de réservation à /ht/tour.php. La charge utile malveillante est stockée dans la base de données sans assainissement. Lorsqu'un administrateur visite la page de gestion des réservations de circuits à /ht/admin/tour_reserves.php, la charge utile stockée s'exécute dans le contexte du navigateur de l'administrateur — permettant le détournement de session, le vol d'identifiants ou la prise de contrôle totale du compte administrateur.
Fichier : tour.php (point d'injection)
Fichier : admin/tour_reserves.php (point d'exécution)
Paramètre : name , email , people , number / champs de contact (POST)
Stockage : hotel_db — table des réservations de circuits
Configuration : Installez le Système de réservation hôtelière et touristique 1.0 sur XAMPP et accédez à http://<target>/ht/
Étape 1 — Accédez à la page de réservation de circuits en tant qu'utilisateur non authentifié :
http://<target>/ht/tour.php?tour=4
Étape 2 — Saisissez la charge utile XSS dans le champ nom ou dans n'importe quel champ, ils sont tous vulnérables au XSS, puis cliquez sur Réserver maintenant :
<script>alert(1)</script>
Résultat : « Réservation effectuée avec succès ! » — la charge utile est désormais stockée dans la base de données.

Étape 3 — Connectez-vous en tant qu'administrateur et accédez au panneau des réservations de circuits :
http://<target>/ht/admin/tour_reserves.php
Résultat : La charge utile XSS stockée s'exécute immédiatement dans le contexte du navigateur de l'administrateur.

Un attaquant non authentifié peut :
Le formulaire de réservation à tour.php stocke les entrées utilisateur directement dans la base de données sans assainissement. Le panneau d'administration à tour_reserves.php renvoie la valeur stockée brute dans la réponse HTML sans encodage de sortie, permettant aux scripts injectés de s'exécuter.
// À la sortie — toujours encoder avant le rendu
echo htmlspecialchars($reservation['name'], ENT_QUOTES, 'UTF-8');
** Imad Alvi** — Chercheur en sécurité indépendant GitHub : Xmyronn