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
NotEnough — Questo strumento calcola il complicato istogramma Huffman canonico per CVE-2023-4863. | Kitploit
Strumenti/GitHubGitHub/caoweiquan322/notenough
Memory ForensicsAnalisi delle VulnerabilitàExploitReverse EngineeringFuzzingBinary Exploitation
GitHubcaoweiquan322/notenough

NotEnough

Questo strumento calcola il complicato istogramma Huffman canonico per CVE-2023-4863.

Vedi Repository
253122 anni faRevisionato da Kitploit

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

Strumento di hacking per tabelle di Huffman

Questo strumento calcola un istogramma canonico di Huffman ingannevole, in grado di innescare una scrittura OOB (Out Of Band) per la libreria libwebp vulnerabile (cioè libwebp <= 1.3.1). Questa vulnerabilità è nota come CVE-2023-4863 o CVE-2023-41064. Possiamo causare un overflow della tabella di Huffman preallocata di al massimo 132 voci.

La logica è che libwebp assume che l'istogramma di Huffman contenuto in ogni immagine webp sia ben formato. Cioè, l'albero di decodifica deve essere un albero completo. Con questa ipotesi, il gruppo libwebp ha sfruttato uno strumento enough per stimare la dimensione massima della memoria necessaria per costruire la tabella di Huffman di decodifica (una struttura potente per decodificare rapidamente i codici Huffman canonici). Tuttavia, gli hacker sono in grado di costruire un albero incompleto per andare oltre questo limite di memoria e quindi causare overflow nella memoria preallocata.

Questo strumento di hacking è stato creato modificando enough per supportare alberi incompleti.

Compila il codice usando il comando qui sotto:

gcc -o NotEnough ./main.c

Per una tabella di Huffman con 40 simboli, tabella radice a 8 bit e profondità massima 15, il numero massimo di voci della tabella è 410. Tuttavia, costruendo un albero incompleto, il numero di voci della tabella potrebbe essere 542. Prova il comando qui sotto:

./NotEnough 40 8 15

Un esempio di tali alberi è il seguente:

Bad tree

Nota che abbiamo potato i rami senza foglie per brevità.

Puoi quindi utilizzare lo strumento craft per costruire un'immagine webp efficace per causare overflow nello strumento dwebp (versione <= 1.3.1). Modifica l'istogramma del codice Huffman code_lengths_counts[4] in {0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 5, 9, 17, 1, 1, 3} di conseguenza, e ricostruisci lo strumento:

vim craft.c    # Change huffman code histogram accordingly, i.e. about line 495.
gcc -o craft craft.c
./craft -o bad_542.webp

Si prega di consultare il blog di @benhawkes per avere un'idea migliore di CVE-2023-4863.

Scarica lo strumento