
Erstellen Sie Ihre eigene Wortliste für Fuzzing
CWFF ist ein Tool, das Ihnen eine spezielle, hochwertige Fuzzing/Content-Discovery-Wortliste mit höchstmöglicher Geschwindigkeit unter Verwendung von Parallelverarbeitung erstellt und stark von @tomnomnom's Who, What, Where, When, Wordlist #NahamCon2020 inspiriert ist.

CWFF [-h] [--threads] [--github] [--subdomains] [--recursive] [--js-libraries] [--connected-websites] [--juicy-files] [--use-filter-model] [-o] domain
positional arguments:
domain Target website(ofc)
optional arguments:
-h, --help Show this help message and exit
--threads The number of maximum concurrent threads to use (Default:1000)
--github Collect endpoints from a given github repo (ex:https://github.com/google/flax)
--subdomains Extract endpoints from subdomains also while search in the wayback machine!
--recursive Work on extracted endpoints recursively (Adds more endpoints but less accurate sometimes)!
--js-libraries Extract endpoints from JS libraries also, not just the JS written by them!
--connected-websites Include endpoints extracted from connected websites
--juicy-files Include endpoints extracted from juicy files like sitemap.xml and robots.txt
--use-filter-model Filter result endpoints with filter_model file
-o The output directory for the endpoints and parameters. (Default: website name)
Es sammelt im Grunde Endpunkte und Parameter des Ziels und seiner Subdomains aus vielen Quellen, die wir jetzt besprechen werden:
Viele Tools durchsuchen nur die oberste Seite von Wayback, um Zeit zu sparen, aber hier durchsuchen wir alle Aufzeichnungen in kurzer Zeit, was jedoch auch viel Zeit in Anspruch nimmt, wenn Sie das --subdomains-Flag verwenden.
<script>-Tags gesammelt werden.CWFF versucht, die JS-Bibliotheken von den tatsächlich von Website-Entwicklern geschriebenen JS-Dateien zu trennen, indem es die JS-Dateinamen analysiert. Standardmäßig extrahiert CWFF Endpunkte nur aus den von Entwicklern geschriebenen JS-Dateien; um JS-Bibliotheken zu verwenden (meistens nicht hilfreich), aktivieren Sie das --js-libraries-Flag.
Common Crawl CDX-Index und Alien Vault OTX (Open Threat Exchange)
Wenn Sie CWFF das --juicy-files-Flag geben, extrahiert es auch Endpunkte aus Dateien wie Sitemap.xml und robots.txt (könnte in Zukunft um weitere erweitert werden)
Wenn Sie CWFF ein GitHub-Repository mit dem --github-Flag übergeben, extrahiert es Pfade aus diesem Repository mithilfe der GitHub-API (kein API-Schlüssel erforderlich).
Nur zur Klarstellung: CWFF verwendet nur die Datei- und Verzeichnispfade, es extrahiert also keine Endpunkte aus dem Inneren der Dateien selbst!
--connected-websites-Flag verwendet CWFF die BuiltWith-Website-API (benötigt einen Schlüssel, ist aber kostenlos), um die mit dem Ziel verbundenen Websites aus dem Beziehungsprofil zu extrahieren und dann Endpunkte aus deren Quellen zu extrahieren.Hinweis: Sie können Ihren API-Schlüssel auf dieser Seite erhalten und die Variable in der Datei
API_keys.pysetzen.
Nachdem Endpunkte aus all diesen Quellen gesammelt wurden, extrahiert CWFF, falls Sie das --recursive-Flag verwendet haben, rekursiv Teile aus den gesammelten Endpunkten.
parseq/javadoc/1.1.0/com wird zu all diesen Endpunkten:
parseq/javadoc/1.1.0/com
parseq/javadoc/1.1.0/
parseq/javadoc/
parseq/
javadoc/
1.1.0/
com
Hinweis: Alle gesammelten Endpunkte/Parameter werden bereinigt und sortiert, ohne Duplikate, um ein eindeutiges Ergebnis zu erhalten.
Natürlich gibt es nach all diesen Quellen und dieser Arbeit viele unerwünschte/nutzlose Endpunkte unter den wichtigen, und hier kommt das Filtern ins Spiel, um Zeit und Ressourcen zu sparen.
In CWFF können Sie unerwünschte Endpunkte mit drei Methoden erkennen und entfernen:
Alle diese Filteroptionen können durch Setzen der Variablen in der Datei filter_model.py und anschließendem Verwenden des --use-filter-model-Flags beim Start von CWFF angegeben werden. Wenn Sie keine Vorstellung davon haben, wie diese Variablen gesetzt werden, lesen Sie die Kommentare, die ich in der Datei hinterlassen habe; es ist die, die ich meistens verwende, und im Screenshot hat sie die Anzahl der gesammelten Endpunkte von 26,177 auf 3,629 reduziert. Falls Sie vergessen haben, beim Ausführen von CWFF das Filtern zu verwenden, keine Sorge, ich habe Sie abgedeckt 😄
Sie können das Skript filter.py verwenden, um vorhandene Endpunkte auf folgende Weise zu filtern, und es lädt die Datei filter_model.py automatisch, ohne CWFF erneut ausführen zu müssen:
python filter.py wordlist.txt output.txt
python3 -m pip install -r requirements.txt
python3 cwff.py --help
Wenn meine Arbeit für Sie nützlich war, können Sie sich gerne bedanken, indem Sie mir einen Kaffee kaufen.
CWFF wurde erstellt, um bei Penetrationstests zu helfen, und ist nicht verantwortlich für Missbrauch oder illegale Zwecke.
Das Kopieren von Code aus diesem Tool oder die Verwendung in einem anderen Tool ist akzeptiert, solange Sie die Quelle angeben :smile