
Generador de listas de palabras curadas y categorizadas para fuzzing web, enumeración de directorios y descubrimiento de subdominios. Sincroniza automáticamente más de 36 fuentes, clasifica las entradas y produce listas optimizadas cortas/largas para pruebas de penetración.
Listas de palabras para fuzzing web: micro curada, short/long categorizadas, y listas finales combinadas.
onelistforallmicro.txt: lista curada (mantenida manualmente).dict/<categoría>_short.txt: lista de palabras por categoría curada (fuentes pequeñas/de calidad).dict/<categoría>_long.txt: lista de palabras por categoría exhaustiva (todas las fuentes).onelistforall.txt: micro + todos los *_short.txt, deduplicados.onelistforall_big.txt: todo combinado, deduplicado.update): Clona ~36 repositorios de listas de palabras en sources/.classify): Recorre cada archivo .txt en sources/, clasifica cada uno en categorías usando la estructura de rutas, palabras clave en nombres de archivo y muestreo de contenido. Produce classification_index.json.build --all-categories): Para cada categoría, fusiona los archivos fuente clasificados en dict/{cat}_short.txt y dict/{cat}_long.txt con filtrado y deduplicación.assemble): Combina micro + todos los shorts en onelistforall.txt, y todo en onelistforall_big.txt.package): Crea archivos 7z con sumas de verificación.publish): Auto-confirma los cambios en dict/ y los envía al remoto.git (para update)7z (solo para package)olfa)# Verificar dependencias
go run ./cmd/olfa check
# Listar fuentes y categorías
go run ./cmd/olfa list
go run ./cmd/olfa list --categories
# Sincronizar repositorios fuente
go run ./cmd/olfa update
go run ./cmd/olfa update --source SecLists
# Clasificar archivos fuente
go run ./cmd/olfa classify
go run ./cmd/olfa classify --format json
# Construir todas las listas de palabras por categoría
go run ./cmd/olfa build --all-categories
go run ./cmd/olfa build --category wordpress --variant short
# Ensamblar listas finales combinadas
go run ./cmd/olfa assemble
# Validar y empaquetar
go run ./cmd/olfa validate-categories
go run ./cmd/olfa stats
go run ./cmd/olfa package
# Pipeline completo (todos los pasos en un comando)
go run ./cmd/olfa pipeline
go run ./cmd/olfa pipeline --dry-run
go run ./cmd/olfa pipeline --skip-publish # saltar git commit+push
go run ./cmd/olfa pipeline --skip-update # saltar git fetch
go run ./cmd/olfa pipeline --commit-msg "mi mensaje personalizado"
# Opción A: comando único
go run ./cmd/olfa pipeline
# Opción B: paso a paso
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
El repositorio incluye ~418 listas de palabras por categoría en dict/ (~930 MB). Sin embargo, 6 archivos superan el límite de 100 MB de GitHub por archivo y no están incluidos en el repositorio:
| Archivo | Tamaño |
|---|---|
dict/subdomains_long.txt | 493 MB |
dict/passwords_long.txt | 351 MB |
dict/passwords_short.txt | 296 MB |
dict/fuzz_general_long.txt | 178 MB |
dict/directories_long.txt | 153 MB |
dict/dns_long.txt | 112 MB |
Para generarlos localmente, ejecuta:
go run ./cmd/olfa pipeline
Ejecutar el pipeline completo (sincronizar fuentes + construir todas las categorías) requiere ~15 GB de espacio en disco.
Todo está controlado por dos archivos:
configs/pipeline.yml — fuentes, filtros, reglas de clasificación, configuración de deduplicación, configuración de publicación.configs/taxonomy.json — taxonomía de categorías (236 categorías con alias).Edita configs/pipeline.yml y agrega una entrada al array sources:
{
"name": "my-wordlists",
"repo": "username/repo-name",
"branch": "main",
"paths": ["all"],
"tags": ["directories", "api"],
"priority": "medium"
}
| Campo | Descripción |
|---|---|
name | Identificador único para la fuente |
repo | owner/repo de GitHub (clonado vía https://github.com/...) |
branch | Rama a seguir |
paths | Directorios a escanear dentro del repositorio (["all"] = todo) |
tags | Categorías de respaldo cuando la auto-clasificación no puede determinar la categoría |
priority | high, medium o low — las fuentes de alta prioridad van a *_short.txt, todas las fuentes van a *_long.txt |
Después de añadir una fuente, ejecuta el pipeline para descargarla y clasificarla:
go run ./cmd/olfa pipeline
O sincroniza solo la nueva fuente:
go run ./cmd/olfa update --source my-wordlists
Los filtros globales en pipeline.yml controlan qué líneas se mantienen o eliminan:
regex_denylist — las líneas que coinciden con algún patrón se eliminan (p. ej., URLs, UUIDs, extensiones de imagen)max_line_len — las líneas más largas que esto se descartan (por defecto: 100 caracteres)trim — eliminar espacios en blanco al inicio/finaldrop_empty — eliminar líneas en blancoLos filtros por categoría se pueden configurar en category_filters (p. ej., subdominios solo permiten caracteres de nombre de host válidos).
Cada categoría produce dos listas de palabras:
*_short.txt — solo de fuentes de prioridad high, o archivos con menos de 5000 líneas, o nombres de archivo que contienen palabras clave como common, short, top, default.*_long.txt — todas las fuentes combinadas.Los umbrales y palabras clave son configurables en classification.short_line_threshold, classification.short_keywords y classification.long_keywords.
Las categorías están definidas en configs/taxonomy.json. Cada una tiene un nombre canónico y alias. Los archivos fuente se emparejan con categorías mediante:
Discovery/DNS/* → subdomains)Para listar todas las categorías disponibles:
go run ./cmd/olfa list --categories
go run ./cmd/olfa list --categories --format json