Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
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
SealSecurityAssignment — Ricerca sulla vulnerabilità CVE-2023-26136 | Kitploit
Strumenti/GitHubGitHub/cucumberanorsncompany/sealsecurityassignment
Analisi StaticaAnalisi delle VulnerabilitàAnalisi del CodiceExploitSicurezza WebApprendimento e Formazione
GitHubcucumberanorsncompany/sealsecurityassignment

SealSecurityAssignment

Ricerca sulla vulnerabilità CVE-2023-26136

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 →
Vedi Repository
1102 anni faNon ancora revisionato
Condividi

SealSecurityAssignment

Ricerca sulla vulnerabilità CVE-2023-26136

Ricerca sulla Vulnerabilità: CVE-2023-26136

Descrizione:

Le versioni del pacchetto tough-cookie precedenti alla 4.1.3 sono vulnerabili a Prototype Pollution a causa di una gestione impropria dei cookie quando si utilizza CookieJar in modalità rejectPublicSuffixes=false. Questo problema deriva dal modo in cui gli oggetti vengono inizializzati.

https://nvd.nist.gov/vuln/detail/CVE-2023-26136

Introduzione:

Cos'è Prototype Pollution?

JavaScript ha il concetto di oggetti, che è in qualche modo simile ai dizionari. Un oggetto può contenere un insieme di variabili di diversi tipi (es. stringa, booleano, intero, ecc.), il nome della variabile è una chiave e il suo valore è il valore, se continuiamo con l'analogia di dizionari e oggetti. Più precisamente, l'oggetto è analogo alla struttura dati del dizionario stesso, e ogni variabile è analoga a una coppia chiave-valore. Gli oggetti hanno anche la parola chiave proto che consente di aggiungere variabili aggiuntive a un oggetto modificandone il prototipo. Prototype Pollution è un attacco in cui l'attaccante inquina il suo oggetto, aggiungendovi variabili aggiuntive, tramite la parola chiave proto. L'interazione qui sotto con la console del browser dimostra l'attacco.

image

Come possiamo vedere, abbiamo due utenti: admin1 e user1. L'oggetto admin1 ha una variabile booleana: "isAdmin", impostata su true. User1 non ha affatto questa variabile. Alla riga 7, aggiungiamo la variabile isAdmin al prototipo di user1, e anche se è evidente dalla riga 10 che la variabile non è stata aggiunta all'oggetto user1 stesso, la console risponde positivamente, questa volta, quando controlliamo il valore di user1.isAdmin. Questo perché user1 eredita le proprietà del suo prototipo.

image

Vale anche la pena menzionare che il prototipo è a sua volta un oggetto, che a sua volta eredita proprietà e metodi dal suo prototipo, creando così una catena di prototipi. La catena termina con un prototipo nullo, quindi un approccio ragionevole per prevenire la Prototype Pollution è fare sì che l'oggetto con cui stiamo lavorando erediti esplicitamente da un prototipo nullo.

Cosa sono i cookie?

I cookie (spesso noti come cookie internet) sono file di testo con piccoli pezzi di dati — come nome utente e password — che vengono utilizzati per identificare il tuo computer mentre usi una rete. Cookie specifici vengono utilizzati per identificare utenti specifici e migliorare la loro esperienza di navigazione web.

Per gentile concessione di Kaspersky: https://www.kaspersky.com/resource-center/definitions/cookies

Cos'è CookieJar?

CookieJar è un oggetto per memorizzare i cookie.

L'assegnazione:

La vulnerabilità:

Secondo la descrizione della vulnerabilità, essa deriva dal modo in cui Tough-Cookie inizializza i cookie. Poiché i cookie sono oggetti, sono teoricamente, almeno, vulnerabili alla Prototype Pollution.

I rischi:

Potendo manomettere gli oggetti e in particolare i cookie, tramite il prototipo dell'oggetto, l'attaccante può potenzialmente accedere a dati non autorizzati, eseguire codice remoto, causare un denial of service, dirottare la sessione se il sito web si affida ai cookie per la gestione della sessione ed estrarre dati sensibili dagli stessi cookie.

La patch:

La patch è stata applicata al file: memstore.js. Secondo il tracciamento dei problemi così come la patch introdotta nella versione 4.1.3, per correggere la vulnerabilità, dobbiamo memorizzare i cookie in una mappa o creare l'oggetto this.idx. Creando this.idx usando: this.idx = Object.create(null); invece di this.idx = {}, mettiamo in pratica il mio suggerimento su come prevenire la Prototype Pollution nell'introduzione, ereditando da un prototipo nullo e tagliando la catena del prototipo.

Test della vulnerabilità (index.js):

Snyk ha pubblicato un Proof of Concept (PoC) per la vulnerabilità discussa. Ho costruito index.js basandomi su di esso. L'ho avvolto in una logica try-catch per catturare le eccezioni se si verificano, ho aggiunto output aggiuntivo per tenere traccia dell'avanzamento dei test e ho ottenuto l'output richiesto (es. "EXPLOITED SUCCESSFULLY" o "EXPLOITED FAILED"). Quando si esegue il comando: npm install [email protected] && node index.js Otteniamo il seguente output:

image

Quando si esegue il comando: npm install ./tough-cookie-2.5.0-PATCHED.tgz && node index.js Otteniamo il seguente output:

image

In entrambi gli scenari (esecuzione con la versione pubblicata 2.5.0 e con la mia versione patchata), siamo riusciti a impostare sia il cookie normale che il cookie sfruttato, ma nella versione patchata, non siamo riusciti ad accedere al cookie sfruttato.

Riepilogo:

In questa assegnazione ho imparato l'attacco di Prototype Pollution, ho imparato l'oggetto JavaScript e sono stato introdotto al pacchetto Tough-Cookie.

Scarica lo strumento