
Kuratierter, kategorisierter Wortlistengenerator für Web-Fuzzing, Verzeichnisenumeration und Subdomain-Erkennung. Synchronisiert automatisch 36+ Quellen, klassifiziert Einträge und erstellt optimierte Kurz-/Langlisten für Penetrationstests.
Wortlisten für Web-Fuzzing: kuratiertes micro, kategorisierte short/long und kombinierte Endlisten.
onelistforallmicro.txt: kuratierte Liste (manuell gepflegt).dict/<category>_short.txt: pro Kategorie kuratierte Wortliste (kleine/qualitativ hochwertige Quellen).dict/<category>_long.txt: pro Kategorie umfassende Wortliste (alle Quellen).onelistforall.txt: micro + alle *_short.txt, dedupliziert.onelistforall_big.txt: alles kombiniert, dedupliziert.update): Klont ca. 36 Wortlisten‑Repos in sources/.classify): Durchläuft jede .txt‑Datei in sources/, klassifiziert jede anhand der Pfadstruktur, Dateinamenschlüsselwörter und Stichproben des Inhalts. Erzeugt classification_index.json.build --all-categories): Für jede Kategorie führt es klassifizierte Quelldateien mit Filtern und Deduplizierung zu dict/{cat}_short.txt und dict/{cat}_long.txt zusammen.assemble): Kombiniert micro + alle shorts zu onelistforall.txt und alles zu onelistforall_big.txt.git (für update)7z (nur für 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
Das Repo enthält ca. 418 Kategorie‑Wortlisten in dict/ (~930 MB). Allerdings überschreiten 6 Dateien das 100‑MB‑Limit von GitHub und sind nicht im Repository enthalten:
Um sie lokal zu generieren, führen Sie aus:
go run ./cmd/olfa pipeline
Das Ausführen der vollständigen Pipeline (Synchronisieren der Quellen + Erstellen aller Kategorien) erfordert ~15 GB Speicherplatz.
Alles wird durch zwei Dateien gesteuert:
configs/pipeline.yml — Quellen, Filter, Klassifizierungsregeln, Deduplizierungseinstellungen, Release‑Konfiguration.configs/taxonomy.json — Kategorietaxonomie (236 Kategorien mit Aliasen).Bearbeiten Sie configs/pipeline.yml und fügen Sie einen Eintrag zum sources‑Array hinzu:
{
"name": "my-wordlists",
"repo": "username/repo-name",
"branch": "main",
"paths": ["all"],
"tags": ["directories", "api"],
"priority": "medium"
}
Nach dem Hinzufügen einer Quelle führen Sie die Pipeline aus, um sie zu pullen und zu klassifizieren:
go run ./cmd/olfa pipeline
Oder synchronisieren Sie nur die neue Quelle:
go run ./cmd/olfa update --source my-wordlists
Globale Filter in pipeline.yml steuern, welche Zeilen behalten oder verworfen werden:
regex_denylist — Zeilen, die auf ein Muster passen, werden entfernt (z. B. URLs, UUIDs, Bilddateierweiterungen)max_line_len — Zeilen, die länger sind, werden verworfen (Standard: 100 Zeichen)trim — Führende/nachfolgende Leerzeichen entfernendrop_empty — Leerzeilen entfernenKategoriespezifische Filter können in category_filters festgelegt werden (z. B. Subdomains erlauben nur gültige Hostname‑Zeichen).
Jede Kategorie erzeugt zwei Wortlisten:
*_short.txt — nur aus Quellen mit high‑Priorität oder Dateien mit weniger als 5000 Zeilen oder Dateinamen, die Schlüsselwörter wie common, short, top, default enthalten.*_long.txt — alle Quellen kombiniert.Schwellenwerte und Schlüsselwörter sind in classification.short_line_threshold, classification.short_keywords und classification.long_keywords konfigurierbar.
Kategorien sind in configs/taxonomy.json definiert. Jede hat einen kanonischen Namen und Aliase. Quelldateien werden Kategorien zugeordnet durch:
Discovery/DNS/* → subdomains)Um alle verfügbaren Kategorien aufzulisten:
go run ./cmd/olfa list --categories
go run ./cmd/olfa list --categories --format json
packagepublish): Committet Änderungen in dict/ automatisch und pusht ins Remote‑Repository.| Datei | Größe |
|---|
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 |
| Feld | Beschreibung |
|---|
name | Eindeutige Kennung für die Quelle |
repo | GitHub owner/repo (geklont über https://github.com/...) |
branch | Zu verfolgender Branch |
paths | Zu scannende Verzeichnisse im Repo (["all"] = alles) |
tags | Fallback‑Kategorien, wenn die automatische Klassifizierung die Kategorie nicht bestimmen kann |
priority | high, medium oder low — Quellen mit hoher Priorität gehen in *_short.txt, alle Quellen in *_long.txt |