
Gerador de wordlists curadas e categorizadas para fuzzing web, enumeração de diretórios e descoberta de subdomínios. Sincroniza automaticamente mais de 36 fontes, classifica entradas e produz listas curtas/longas otimizadas para testes de penetração.
Listas de palavras para fuzzing web: micro selecionadas, short/long categorizadas e listas finais combinadas.
onelistforallmicro.txt: lista selecionada (mantida manualmente).dict/<categoria>_short.txt: lista de palavras por categoria (fontes pequenas/de qualidade).dict/<categoria>_long.txt: lista de palavras abrangente por categoria (todas as fontes).onelistforall.txt: micro + todos os *_short.txt, deduplicados.onelistforall_big.txt: tudo combinado, deduplicado.update): Clona ~36 repositórios de listas de palavras em sources/.classify): Percorre todos os ficheiros .txt em sources/, classifica cada um em categorias usando estrutura de caminho, palavras-chave no nome do ficheiro e amostragem de conteúdo. Produz classification_index.json.build --all-categories): Para cada categoria, combina ficheiros fonte classificados em dict/{cat}_short.txt e dict/{cat}_long.txt com filtragem e deduplicação.assemble): Combina micro + todos os shorts em onelistforall.txt, e tudo em onelistforall_big.txt.git (para update)7z (apenas para package)olfa)# Verificar dependências
go run ./cmd/olfa check
# Listar fontes e categorias
go run ./cmd/olfa list
go run ./cmd/olfa list --categories
# Sincronizar repositorios fonte
go run ./cmd/olfa update
go run ./cmd/olfa update --source SecLists
# Classificar ficheiros fonte
go run ./cmd/olfa classify
go run ./cmd/olfa classify --format json
# Construir todas as listas de palavras por categoria
go run ./cmd/olfa build --all-categories
go run ./cmd/olfa build --category wordpress --variant short
# Montar listas finais combinadas
go run ./cmd/olfa assemble
# Validar e empacotar
go run ./cmd/olfa validate-categories
go run ./cmd/olfa stats
go run ./cmd/olfa package
# Pipeline completa (todos os passos num comando)
go run ./cmd/olfa pipeline
go run ./cmd/olfa pipeline --dry-run
go run ./cmd/olfa pipeline --skip-publish # ignorar git commit+push
go run ./cmd/olfa pipeline --skip-update # ignorar git fetch
go run ./cmd/olfa pipeline --commit-msg "my custom message"
# Opção A: comando único
go run ./cmd/olfa pipeline
# Opção B: passo a passo
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
O repositório inclui ~418 listas de palavras por categoria em dict/ (~930 MB). No entanto, 6 ficheiros excedem o limite de 100 MB do GitHub e não estão incluídos no repositório:
Para gerá-los localmente, execute:
go run ./cmd/olfa pipeline
Executar a pipeline completa (sincronização das fontes + construção de todas as categorias) requer ~15 GB de espaço em disco.
Tudo é controlado por dois ficheiros:
configs/pipeline.yml — fontes, filtros, regras de classificação, configurações de dedup, configuração de release.configs/taxonomy.json — taxonomia de categorias (236 categorias com aliases).Edite configs/pipeline.yml e adicione uma entrada ao array sources:
{
"name": "my-wordlists",
"repo": "username/repo-name",
"branch": "main",
"paths": ["all"],
"tags": ["directories", "api"],
"priority": "medium"
}
Após adicionar uma fonte, execute a pipeline para puxá-la e classificá-la:
go run ./cmd/olfa pipeline
Ou sincronize apenas a nova fonte:
go run ./cmd/olfa update --source my-wordlists
Os filtros globais em pipeline.yml controlam quais linhas são mantidas ou descartadas:
regex_denylist — linhas que correspondem a qualquer padrão são removidas (ex.: URLs, UUIDs, extensões de imagem)max_line_len — linhas mais longas que isso são descartadas (padrão: 100 caracteres)trim — remove espaços em branco no início/fimdrop_empty — remove linhas em brancoFiltros por categoria podem ser definidos em category_filters (ex.: subdomínios apenas permitem caracteres válidos de hostname).
Cada categoria produz duas listas de palavras:
*_short.txt — apenas de fontes com prioridade high, ou ficheiros com menos de 5000 linhas, ou nomes de ficheiro contendo palavras-chave como common, short, top, default.*_long.txt — todas as fontes combinadas.Os limites e palavras-chave são configuráveis em classification.short_line_threshold, classification.short_keywords e classification.long_keywords.
As categorias são definidas em configs/taxonomy.json. Cada uma tem um nome canónico e aliases. Os ficheiros fonte são combinados a categorias por:
Discovery/DNS/* → subdomínios)Para listar todas as categorias disponíveis:
go run ./cmd/olfa list --categories
go run ./cmd/olfa list --categories --format json
package): Cria arquivos 7z com somas de verificação.publish): Faz auto-commit das alterações em dict/ e envia para o repositório remoto.| Ficheiro | Tamanho |
|---|
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 |
| Campo | Descrição |
|---|
name | Identificador único para a fonte |
repo | owner/repo do GitHub (clonado via https://github.com/...) |
branch | Ramo a seguir |
paths | Diretórios para varrer dentro do repositório (["all"] = tudo) |
tags | Categorias de fallback quando a classificação automática não consegue determinar a categoria |
priority | high, medium ou low — fontes de alta prioridade vão para *_short.txt, todas as fontes vão para *_long.txt |