Skip to content
KitploitKITPLOIT
StrumentiBlog
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
ubercookie — Demo educativa dell'evercookie che mostra come le tecniche di archiviazione del browser e di cache HTTP possano re-identificare persistentemente un visitatore. | Kitploit
Strumenti/GitHubGitHub/elpy1/ubercookie
OSINT (Open Source Intelligence)Evasione IDS/IPSSicurezza WebPrivacyApprendimento e FormazioneSpoofing dell'Impronta Digitale
GitHubelpy1/ubercookie

ubercookie

Demo educativa dell'evercookie che mostra come le tecniche di archiviazione del browser e di cache HTTP possano re-identificare persistentemente un visitatore.

Vedi Repository
1162 mesi 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
Sito web

🍪 ubercookie

Una dimostrazione educativa di come i siti web ti identificano in modo persistente — e perché "cancellare i cookie" non è più sufficiente.

ubercookie inserisce un singolo id casuale in 12 diversi vettori di archiviazione del browser contemporaneamente. Ogni volta che visiti, li legge tutti, prende un consenso e riscrive l'id ovunque. Cancella un qualsiasi archivio — o anche tutti i cookie — e i sopravvissuti lo ri-generano silenziosamente. Il sito ti mostra, in linguaggio chiaro, esattamente dove si nasconde il tuo id e quante volte ha riconosciuto il tuo browser.

È la stessa idea alla base del classico evercookie di Samy Kamkar — realizzato qui come strumento didattico aperto e trasparente incentrato sulla ri-generazione dello storage e sulla persistenza dei supercookie.

[!IMPORTANT] Questo progetto traccia il visitatore apposta, per consapevolezza. È solo first-party, memorizza solo un id casuale, conteggi di visite, timestamp di primo/ultimo accesso ed etichette di fonte di recupero, non condivide nulla con terze parti e include un vero pulsante "Dimenticami". Non riutilizzarlo per tracciare persone senza la loro conoscenza o consenso — è l'opposto dello scopo. Vedi Etica.


Cosa dimostra

VettoreTipoRichiede JS?Cancellabile da JS?Cosa insegna
document.cookieclientsìsìIl tracciante di base
localStorageclientsìsìSopravvive alla cancellazione dei cookie
sessionStorageclientsìsìRidondanza per scheda
IndexedDBclientsìsìUn intero database che la gente dimentica di cancellare
Cache API (caches)clientsìsìArchivio programmabile, separato dai precedenti
window.nameclientsìsìPersiste tra le navigazioni
OPFS (Origin Private File System)clientsìsìUn filesystem in sandbox che le pulizie manuali saltano
Service Worker + CacheclientsìsìScript in background che ri-serve l'id, anche offline
Cookie server (HttpOnly)servernovia serverInvisibile a JS, inviato comunque ad ogni richiesta
Supercookie ETagservernosolo svuotamento cacheId rimandato in If-None-Match
Supercookie Last-Modifiedservernosolo svuotamento cacheId codificato nella data della risorsa cacheata
Cache HTTP (script con id incorporato)servernosolo svuotamento cacheId incorporato in un file cacheato immutable

Oltre a questi, la pagina chiede al browser l'archiviazione persistente (navigator.storage.persist()), che esenta le copie IndexedDB / Cache / Service Worker / OPFS dall'evizione automatica — rendendole ancora più difficili da eliminare.

I tre vettori basati su cache sono il colpo di scena della persistenza: vivono nella cache HTTP del browser, quindi JavaScript (incluso il nostro "Dimenticami") non può eliminarli — solo svuotare la cache del browser lo fa. È così che l'id risorge.

Una descrizione completa dei vettori di archiviazione implementati, più l'idea del supercookie HSTS che ancora si adatta a questo progetto, si trova in docs/techniques.md.


Architettura

root@kitploit:~
ubercookie/
├── backend/            FastAPI — vettori lato server + il registro delle osservazioni (SQLite)
│   └── app/
│       ├── main.py     endpoint: /api/visit, /api/whoami, /api/etag-id,
│       │               /api/lastmod-id, /api/cache-id.js, /api/clear-cookie,
│       │               /api/forget
│       ├── store.py    memoria "abbiamo visto questo browser N volte"
│       └── ids.py      crea/valida l'id di tracciamento esadecimale a 32 caratteri
└── frontend/           Vanilla JS + Vite — la dashboard e i vettori client
    └── src/ubercookie/
        ├── index.js    orchestratore: leggi-tutti → consenso → ri-genera → report
        └── vectors/    un modulo auto-contenuto per ogni vettore di archiviazione

Come funziona una visita (frontend/src/ubercookie/index.js):

  1. Legge ogni vettore in parallelo.
  2. Consenso — sceglie l'id su cui la maggior parte dei vettori concorda (o nessuno, se sei nuovo).
  3. Report al server, che crea un nuovo id se non ne avevi uno, registra la visita e imposta il cookie HttpOnly.
  4. Ri-genera — scrive quell'unico id in ogni vettore che lo aveva perso.

Avvio rapido

Richiede Python ≥ 3.11 (con uv) e Node ≥ 18.

root@kitploit:~
make install        # backend deps (uv) + frontend deps (npm)

# then, in two terminals:
make backend        # FastAPI on http://localhost:8000
make frontend       # Vite on  http://localhost:5173  (proxies /api → :8000)

Apri http://localhost:5173 e guardati mentre vieni tracciato. Apri DevTools, elimina alcuni archivi, premi Re-scan e guardali ri-generarsi.

Comando unico per entrambi i server contemporaneamente: ./scripts/dev.sh

Stile produzione (FastAPI serve il frontend compilato, singola origine)

root@kitploit:~
make build                                   # → frontend/dist
cd backend && uv run uvicorn app.main:app --port 8000
# open http://localhost:8000

Servire entrambi da una singola origine è la configurazione più fedele, perché i vettori cache/ETag dipendono dal reale caching HTTP stessa-origine.


Test

root@kitploit:~
make test           # backend pytest (logica vettori lato server + registro osservazioni)
make build          # build frontend produzione

I test del backend verificano i vettori lato server e il registro osservazioni. Il comportamento del browser necessita ancora di un browser reale per la verifica perché diversi vettori dipendono dallo storage di origine, dai Service Worker e dal caching HTTP.


Etica

Questo è uno strumento difensivo / di consapevolezza. Linee guida integrate nel design:

  • Trasparenza — ogni valore memorizzato viene mostrato all'utente sulla pagina.
  • Solo first-party — nessuna richiesta a terze parti, nessun tracciamento cross-site.
  • Dati minimi — un id casuale, timestamp di primo/ultimo accesso, un contatore di visite ed etichette per i vettori che hanno recuperato l'id. Nessun dato personale e nulla lascia il server.
  • Reale opt-out — il pulsante Dimenticami cancella tutto ciò che è raggiungibile ed elimina il record sul server; la pagina è onesta su ciò che solo uno svuotamento cache può rimuovere.

Per favore, mantieni qualsiasi fork nello stesso spirito: usalo per insegnare alle persone come funziona il tracciamento in modo che possano difendersi, non per tracciarle di nascosto.

Licenza

MIT — vedi LICENSE.

Scarica lo strumento