
Générateur de listes de mots organisées et catégorisées pour le fuzzing web, l'énumération de répertoires et la découverte de sous-domaines. Synchronise automatiquement plus de 36 sources, classe les entrées et produit des listes courtes/longues optimisées pour les tests de pénétration.
Listes de mots pour le fuzzing web : listes « micro » organisées, listes « courtes »/« longues » par catégorie, et listes finales combinées.
onelistforallmicro.txt : liste organisée (maintenue manuellement).dict/<category>_short.txt : liste de mots par catégorie (sources de petite taille/qualité).dict/<category>_long.txt : liste de mots complète par catégorie (toutes sources).onelistforall.txt : micro + tous les *_short.txt, dédupliqués.onelistforall_big.txt : tout combiné, dédupliqué.update) : clone environ 36 dépôts de listes de mots dans .sources/classify) : parcourt chaque fichier .txt dans sources/, classe chaque fichier dans des catégories en utilisant la structure des chemins, les mots-clés des noms de fichiers et l'échantillonnage de contenu. Produit classification_index.json.build --all-categories) : pour chaque catégorie, fusionne les fichiers source classés dans dict/{cat}_short.txt et dict/{cat}_long.txt avec filtrage et déduplication.assemble) : combine la liste micro + toutes les listes courtes dans onelistforall.txt, et tout dans onelistforall_big.txt.package) : crée des archives 7z avec sommes de contrôle.publish) : commit automatique les changements dans dict/ et pousse vers le dépôt distant.git (pour update)7z (uniquement pour package)olfa)# Check dependencies
go run ./cmd/olfa check
# List sources and categories
go run ./cmd/olfa list
go run ./cmd/olfa list --categories
# Sync source repos
go run ./cmd/olfa update
go run ./cmd/olfa update --source SecLists
# Classify source files
go run ./cmd/olfa classify
go run ./cmd/olfa classify --format json
# Build all category wordlists
go run ./cmd/olfa build --all-categories
go run ./cmd/olfa build --category wordpress --variant short
# Assemble final combined lists
go run ./cmd/olfa assemble
# Validate and package
go run ./cmd/olfa validate-categories
go run ./cmd/olfa stats
go run ./cmd/olfa package
# Full pipeline (all steps in one command)
go run ./cmd/olfa pipeline
go run ./cmd/olfa pipeline --dry-run
go run ./cmd/olfa pipeline --skip-publish # skip git commit+push
go run ./cmd/olfa pipeline --skip-update # skip git fetch
go run ./cmd/olfa pipeline --commit-msg "my custom message"
# Option A: single command
go run ./cmd/olfa pipeline
# Option B: step by step
go run ./cmd/olfa check
go run ./cmd/olfa update
go run ./cmd/olfa classify
go run ./cmd/olfa build --all-categories
go run ./cmd/olfa assemble
go run ./cmd/olfa validate-categories
go run ./cmd/olfa package
git add dict/ && git commit -m "chore: update dict/ wordlists" && git push
Le dépôt inclut environ 418 listes de mots par catégorie dans dict/ (~930 Mo). Cependant, 6 fichiers dépassent la limite de taille de fichier de 100 Mo de GitHub et ne sont pas inclus dans le dépôt :
| Fichier | Taille |
|---|---|
dict/subdomains_long.txt | 493 Mo |
dict/passwords_long.txt | 351 Mo |
dict/passwords_short.txt | 296 Mo |
dict/fuzz_general_long.txt | 178 Mo |
dict/directories_long.txt | 153 Mo |
dict/dns_long.txt | 112 Mo |
Pour les générer localement, exécutez :
go run ./cmd/olfa pipeline
L'exécution du pipeline complet (synchronisation des sources + construction de toutes les catégories) nécessite environ 15 Go d'espace disque.
Tout est contrôlé par deux fichiers :
configs/pipeline.yml — sources, filtres, règles de classification, paramètres de déduplication, configuration de publication.configs/taxonomy.json — taxonomie des catégories (236 catégories avec alias).Modifiez configs/pipeline.yml et ajoutez une entrée dans le tableau sources :
{
"name": "my-wordlists",
"repo": "username/repo-name",
"branch": "main",
"paths": ["all"],
"tags": ["directories", "api"],
"priority": "medium"
}
| Champ | Description |
|---|---|
name | Identifiant unique de la source |
repo | GitHub owner/repo (cloné via https://github.com/...) |
branch | Branche à suivre |
paths | Répertoires à analyser dans le dépôt (["all"] = tout) |
tags | Catégories de repli lorsque l'auto-classification ne peut pas déterminer la catégorie |
priority | high, medium ou low — les sources de haute priorité vont dans *_short.txt, toutes les sources vont dans *_long.txt |
Après avoir ajouté une source, exécutez le pipeline pour la récupérer et la classer :
go run ./cmd/olfa pipeline
Ou synchronisez uniquement la nouvelle source :
go run ./cmd/olfa update --source my-wordlists
Les filtres globaux dans pipeline.yml contrôlent quelles lignes sont conservées ou supprimées :
regex_denylist — les lignes correspondant à tout motif sont supprimées (par exemple, URLs, UUIDs, extensions d'image)max_line_len — les lignes plus longues que cela sont supprimées (par défaut : 100 caractères)trim — supprime les espaces de début/findrop_empty — supprime les lignes videsDes filtres par catégorie peuvent être définis dans category_filters (par exemple, les sous-domaines n'autorisent que les caractères de nom d'hôte valides).
Chaque catégorie produit deux listes de mots :
*_short.txt — uniquement à partir des sources de priorité high, ou des fichiers de moins de 5000 lignes, ou des noms de fichiers contenant des mots-clés comme common, short, top, default.*_long.txt — toutes les sources combinées.Les seuils et mots-clés sont configurables dans classification.short_line_threshold, classification.short_keywords et classification.long_keywords.
Les catégories sont définies dans configs/taxonomy.json. Chacune a un nom canonique et des alias. Les fichiers sources sont associés aux catégories par :
Discovery/DNS/* → sous-domaines)Pour lister toutes les catégories disponibles :
go run ./cmd/olfa list --categories
go run ./cmd/olfa list --categories --format json