Skip to main content

fuzzing-dictionary

fuzzing-dictionary

Catalogue généré le 2026-05-11

En une phrase

FuzzingUn dictionariesdictionnaire guidede fuzzersfuzzing, withc'est domain-specificune tokens.liste de "mots magiques" qu'on donne au fuzzer pour qu'il sache de quoi il parle (mots-clés HTTP, balises XML, octets de header PNG…) et trouve des bugs plus vite.

Quand l'utiliser

  • UseFuzzer whenun parseur de format binaire (PNG, ZIP, PDF) qui a des "magic bytes" en en-tête.
Fuzzer un parseur de format texte (JSON, XML, YAML, configs). Fuzzer un protocole réseau (HTTP, DNS, protocole maison). Quand ton fuzzer plafonne sans trouver de nouveaux chemins (il bloque sur une validation). Pour rendre n'importe quelle campagne de fuzzing parsers,plus protocols,efficace or(format-aware format-specific code.fuzzing).

Comment l'invoquer

  • Slash command : /fuzzing-dictionary (si exposé dans ton CLI)
  • Phrases déclencheurs (texte) : voir"fuzzing ladictionary", description"format-aware complètefuzzing", ci-dessous"magic bytes"
  • Auto-invocation : surSur demande explicite

Description complètedétaillée

FuzzingQuand dictionariesun guidefuzzer fuzzersgénère withdes domain-specificentrées tokens.au Usehasard, whenil a très peu de chances de produire spontanément la string "Content-Type" ou les 4 octets magiques 89 50 4E 47 qui ouvrent un fichier PNG. Du coup, il reste bloqué dans les premières lignes du parseur ("le format est invalide, retour") sans jamais explorer le cœur du code.

Un dictionnaire de fuzzing parsers,résout protocols,ce orproblème. format-specificC'est code.un simple fichier texte avec des "tokens" entre guillemets, par exemple "GET ", "Content-Length:", kw="\xFF\xD8\xFF\xE0" (entête JPEG). Tu le donnes au fuzzer avec l'option -dict=, et il va insérer ces morceaux dans ses mutations. D'un coup, ses entrées ressemblent vaguement à du vrai protocole/format, et il franchit la couche de validation pour aller explorer en profondeur.

Le format est universel : un même dictionnaire marche avec libFuzzer, AFL++ et cargo-fuzz. Tu peux trouver des dictionnaires prêts à l'emploi sur le repo AFL++ (HTTP, JS, XML, etc.) ou en construire un toi-même en extrayant les chaînes de la doc du format. C'est une des optimisations à plus fort retour sur investissement pour booster une campagne de fuzzing — souvent x10 ou x100 sur la vitesse de découverte de bugs.

Pour aller plus loin

Fuzzing

Pour Dictionaryles

Aexemples fuzzingconcrets, dictionaryoptions providesde domain-specificconfiguration tokenset topatterns guide the fuzzer toward interesting inputs. Instead of purely random mutations, the fuzzer incorporates known keywords, magic numbers, protocol commands, and format-specific strings that are more likely to reach deeper code paths in parsers, protocol handlers, and file format processors.

Overview

Dictionaries are text files containing quoted strings that represent meaningful tokens for your target. They help fuzzers bypass early validation checks and explore code paths that would be difficult to reach through blind mutation alone.

Key Concepts

Concept Description Dictionary Entry A quoted string (e.g., "keyword") or key-value pair (e.g., kw="value") Hex Escapes Byte sequences like "\xF7\xF8" for non-printable characters Token Injection Fuzzer inserts dictionary entries into generated inputs

(extrait —avancés, voir le SKILL.md complet pour la suite)original.

Source

  • Plugin : trailofbits/testing-handbook-skills
  • Nom interne : fuzzing-dictionary
  • Fichier : /home/thymon/.claude/plugins/cache/trailofbits/testing-handbook-skills/1.0.1/skills/fuzzing-dictionary/SKILL.md