
Erstaunlich schneller Response-Crawler, um interessante Dinge im Quellcode zu finden! 😎🔥
Getestete Umgebungen: Windows, MAC, Linux und Windows-Subsystem für Linux (WSL)
Unterstützen Sie dieses Projekt, indem Sie ein Sponsor werden. Schauen Sie sich diese großartigen Sponsoren an:
Oxylabs bietet Premium-Proxies mit über 100 Mio. IPs in 195 Ländern und einsatzbereite Scraper-APIs. Sie können den einmaligen Aktionscode boost35 verwenden, um 35 % Rabatt auf Residential- und Mobile-Proxies, Web Unblocker und Scraper-APIs zu erhalten.
Durchsuchen von Antworten, um versteckte Endpunkte zu finden, entweder durch Senden von Anfragen oder aus den lokalen Antwortdateien (falls vorhanden).
Erstellen einer Liste von JavaScript-Variablen, die im Quellcode gefunden wurden.
Extrahieren aller Social-Media-Links von den Websites, um potenziell defekte Links zu identifizieren.
Brute-Force-Angriff auf den Host mit einer Wortliste.
Abrufen der Statuscodes für eine Liste von URLs / Herausfiltern der aktiven Domains aus einer Liste von Hosts.
Alle oben genannten Funktionen werden mit hoher Geschwindigkeit ausgeführt.
SourceWolf verwendet das Session-Modul aus der requests-Bibliothek, was bedeutet, dass es die TCP-Verbindung wiederverwendet, was es sehr schnell macht.
SourceWolf bietet Ihnen die Möglichkeit, die Antwortdateien lokal zu durchsuchen, sodass Sie keine Anfragen mehr an einen Endpunkt senden, dessen Antwort Sie bereits eine Kopie haben.
Die endgültigen Endpunkte liegen in vollständiger Form mit einem Host wie https://example.com/api/admin vor, nicht als /api/admin. Dies kann nützlich sein, wenn Sie eine Liste von Hosts scannen.
> python3 sourcewolf.py -h
-l LIST, --list LIST List of javascript URLs
-u URL, --url URL Single URL
-t THREADS, --threads THREADS
Number of concurrent threads to use (default 5)
-o OUTPUT_DIR, --output directory-name OUTPUT_DIR
Store URL response text in a directory for further analysis
-s STATUS_CODE_FILE, --store-status-code STATUS_CODE_FILE
Store the status code in a file
-b BRUTE, --brute BRUTE
Brute force URL with FUZZ keyword (--wordlist must also be used along with this)
-w WORDLIST, --wordlist WORDLIST
Wordlist for brute forcing URL
-v, --verbose Verbose mode (displays all the requests that are being sent)
-c CRAWL_OUTPUT, --crawl-output CRAWL_OUTPUT
Output directory to store the crawled output
-d DELAY, --delay DELAY
Delay in the requests (in seconds)
--timeout TIMEOUT Maximum time to wait for connection timing out (in seconds)
--headers HEADERS Add custom headers (Must be passed in as {'Token': 'YOUR-TOKEN-HERE'}) --> Dictionary format
--cookies COOKIES Add cookies (Must be passed in as {'Cookie': 'YOUR-COOKIE-HERE'}) --> Dictionary format
--only-success Only print 2XX responses
--local LOCAL Directory with local response files to crawl for
--no-colors Remove colors from the output
--update-info Check for the latest version, and update if required
Vollständige Verwendung:
python3 sourcewolf.py -l domains -o output/ -c crawl_output
domains ist die Liste der URLs, die Sie durchsuchen möchten, im Format:
https://example.com/
https://exisiting.example.com/
https://exisiting.example.com/dashboard
https://example.com/hitme
output/ ist das Verzeichnis, in dem die Antworttextdateien der Eingabedatei gespeichert werden.
Sie werden im Format output/2XX, output/3XX, output/4XX und output/5XX gespeichert.
output/2XX speichert 2XX-Statuscode-Antworten usw.
crawl_output, angegeben mit dem -c-Flag, wird verwendet, um die Ausgabe in einem Verzeichnis zu speichern, das SourceWolf durch das Durchsuchen der HTTP-Antwortdateien erstellt, die im Verzeichnis output/ gespeichert sind (derzeit nur Endpunkte).
Das Verzeichnis crawl_output/ enthält:
endpoints - Alle gefundenen Endpunkte
jsvars - Alle JavaScript-Variablen
Das Verzeichnis wird weitere Dateien enthalten, sobald weitere Module und Funktionen in SourceWolf integriert werden.
(ODER)
Für eine einzelne URL,
python3 sourcewolf.py -u example.com/api/endpoint -o output/ -c crawl_output
Nur das Flag -l wird durch -u ersetzt, alles andere bleibt gleich.
python3 sourcewolf.py -b https://hackerone.com/FUZZ -w /path/to/wordlist -s status
Das -w-Flag ist optional. Wenn nicht angegeben, wird eine Standard-Wortliste mit 6124 Wörtern verwendet.
SourceWolf ersetzt das FUZZ-Schlüsselwort aus dem -b-Wert durch die Wörter aus der Wortliste und sendet die Anfragen. Dies ermöglicht es Ihnen, auch Parameterwerte per Brute-Force zu ermitteln.
-s speichert die Ausgabe in einer Datei namens status
Screenshot nicht enthalten, da die Ausgabe ähnlich wie im
Crawl-Antwort-Modus aussieht.
python3 sourcewolf -l domains -s live
Die Datei domains kann alles enthalten, wie Subdomains, Endpunkte, JS-Dateien.
Das -s-Flag schreibt die Antwort in die Datei live.
Sowohl der Brute-Force- als auch der Probing-Modus geben standardmäßig alle Statuscodes außer 404 aus. Sie können dieses Verhalten anpassen, um nur
2XX-Antworten mit dem Flag--only-successauszugeben.
SourceWolf nutzt auch Multithreading.
Die Standardanzahl von Threads für alle Modi ist 5. Sie können die Anzahl der Threads mit dem -t-Flag erhöhen.
Zusätzlich zu den oben genannten drei Modi gibt es die Option, lokal zu crawlen, vorausgesetzt, Sie haben die Dateien lokal und folgen den sourcewolf-kompatiblen Namenskonventionen.
Speichern Sie alle Antworten in einem Verzeichnis, z.B. responses/
python3 sourcewolf.py --local responses/
Dies wird das lokale Verzeichnis durchsuchen und Ihnen die Ergebnisse liefern.
Subdomain-Enumeration
|
|
SourceWolf
|
|
Herausfiltern aktiver Subdomains
|
|
Antworten speichern und versteckte Endpunkte finden / Verzeichnis-Brute-Forcing
An diesem Punkt werden Sie viele Endpunkte vom Ziel haben, die in Echtzeit aus den Webseiten zum Zeitpunkt der Durchführung des Scans extrahiert wurden.
Der Kernzweck von SourceWolf ist mit einer breiteren Vision gemacht, Antworten nicht nur zum Entdecken versteckter Endpunkte zu durchsuchen, sondern auch um alle Aufgaben zu automatisieren, die durch manuelles Durchsuchen der Antwortdateien erledigt werden.
Ein Beispiel dafür wäre das manuelle Suchen nach geleakten Schlüsseln im Quellcode.
Dieser Kernzweck erklärt die modulare Art und Weise, in der die Dateien geschrieben sind.
Es ist möglich, SourceWolf direkt vom Terminal aus zu aktualisieren, ohne das Repository erneut klonen zu müssen.
SourceWolf prüft bei jedem Start auf Aktualisierungen und benachrichtigt den Benutzer, falls Aktualisierungen verfügbar sind, zusammen mit einer Zusammenfassung.
Ausführen von
python3 sourcewolf.py --update-info
liefert weitere Details zur Aktualisierung.
Wenn Aktualisierungen verfügbar sind, müssen Sie die Datei update.py aus dem SourceWolf-Verzeichnis verschieben und ausführen.
Warnung: Dies löscht alle Dateien und Ordner in Ihrem SourceWolf-Verzeichnis
python3 update.py /path/to/SourceWolf
Dies entfernt tatsächlich das Verzeichnis und klont das Repository erneut.
Derzeit unterstützt Sourcewolf nur das Auffinden versteckter Endpunkte aus dem Quellcode, aber Sie können erwarten, dass in Zukunft weitere Funktionen integriert werden.
Wo können Sie beitragen?
Beiträge werden hauptsächlich für die Integration weiterer Module in sourcewolf benötigt, aber Sie können gerne einen PR eröffnen, auch wenn es sich nur um einen Tippfehler handelt.
Bevor Sie einen Pull-Request senden, stellen Sie sicher, dass Sie die neueste Version verwenden.
> Eröffnen Sie zuerst ein Issue, wenn Sie eine neue Funktion hinzufügen möchten, um zu bestätigen, ob sie benötigt wird! Sie sollten keine Zeit damit verschwenden, eine neue Funktion zu programmieren, die nicht benötigt wird.
Sie können gerne ein Issue eröffnen für jedes Problem, auf das Sie stoßen.
Stellen Sie sicher, dass Sie Ihr Betriebssystem, den ausgeführten Befehl und wenn möglich Screenshots angeben, wenn Sie ein Issue eröffnen, da dies es mir erleichtert, das Problem zu reproduzieren.
Sie können auch neue Funktionen anfordern oder bestehende Funktionen verbessern, indem Sie ein Issue eröffnen.
Um die Dateien lokal zu durchsuchen, müssen Sie einige Namenskonventionen befolgen. Diese Konventionen dienen dazu, dass SourceWolf den Hostnamen direkt identifizieren und somit alle Endpunkte, einschließlich der relativen, parsen kann.
Betrachten Sie eine URL https://example.com/api/
example.com/apiexample.com@apiDie Datei sieht dann letztendlich so aus: [email protected]
Logo entworfen von Murugan artworks
SourceWolf verwendet die MIT-Lizenz