
Un crawler di risposta incredibilmente veloce per trovare roba succosa nel codice sorgente! 😎🔥
Ambienti testati: Windows, Mac, Linux e sottosistema Windows per Linux (WSL)
Supporta questo progetto diventando uno sponsor. Dai un'occhiata a questi fantastici sponsor:
Oxylabs fornisce proxy premium con oltre 100 milioni di IP in 195 paesi e API Scraper pronte all'uso. Puoi utilizzare questo codice promozionale unico boost35 per ottenere il 35% di sconto su proxy Residenziali, Mobili, Web Unblocker e API Scraper.
Esamina le risposte per trovare endpoint nascosti, sia inviando richieste, sia dai file di risposta locali (se presenti).
Crea un elenco di variabili JavaScript trovate nel sorgente.
Estrae tutti i link dei social media dai siti web per identificare eventuali link interrotti.
Forza bruta dell'host utilizzando una wordlist.
Ottiene i codici di stato per un elenco di URL / Filtra i domini attivi da un elenco di host.
Tutte le funzionalità sopra menzionate vengono eseguite con grande velocità.
SourceWolf utilizza il modulo Session della libreria requests, il che significa che riutilizza la connessione TCP, rendendolo molto veloce.
SourceWolf ti offre l'opzione di esaminare i file di risposta localmente, in modo da non inviare nuovamente richieste a un endpoint di cui hai già una copia della risposta.
Gli endpoint finali sono in forma completa con un host come https://example.com/api/admin e non come /api/admin. Questo può essere utile quando si scansiona un elenco di host.
> 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
Utilizzo completo:
python3 sourcewolf.py -l domains -o output/ -c crawl_output
domains è l'elenco di URL che vuoi esaminare nel formato:
https://example.com/
https://exisiting.example.com/
https://exisiting.example.com/dashboard
https://example.com/hitme
output/ è la directory in cui vengono memorizzati i file di testo delle risposte del file di input.
Vengono memorizzati nel formato output/2XX, output/3XX, output/4XX e output/5XX.
output/2XX memorizza le risposte con codice di stato 2XX, e così via!
crawl_output specificato con il flag -c viene utilizzato per memorizzare l'output, all'interno di una directory che SourceWolf produce esaminando i file di risposta HTTP, memorizzati nella directory output/ (attualmente solo endpoint).
La directory crawl_output/ contiene:
endpoints - Tutti gli endpoint trovati
jsvars - Tutte le variabili JavaScript
La directory avrà più file, man mano che verranno integrati più moduli e funzionalità in SourceWolf.
(OPPURE)
Per un singolo URL,
python3 sourcewolf.py -u example.com/api/endpoint -o output/ -c crawl_output
Solo il flag -l viene sostituito da -u, tutto il resto rimane invariato.
python3 sourcewolf.py -b https://hackerone.com/FUZZ -w /path/to/wordlist -s status
Il flag -w è opzionale. Se non specificato, utilizzerà una wordlist predefinita con 6124 parole.
SourceWolf sostituisce la parola chiave FUZZ dal valore di -b con le parole della wordlist e invia le richieste. Questo ti consente di forzare anche i valori dei parametri GET.
-s memorizzerà l'output in un file chiamato status
Screenshot non incluso poiché l'output è simile alla modalità
crawl response.
python3 sourcewolf -l domains -s live
Il file domains può contenere qualsiasi cosa come sottodomini, endpoint, file js.
Il flag -s scrive la risposta nel file live.
Sia la modalità di forza bruta che quella di sondaggio stampano tutti i codici di stato tranne 404 per impostazione predefinita. Puoi personalizzare questo comportamento per stampare solo le risposte
2XXutilizzando il flag--only-success.
SourceWolf fa anche uso del multithreading.
Il numero predefinito di thread per tutte le modalità è 5. Puoi aumentare il numero di thread utilizzando il flag -t.
Oltre alle tre modalità sopra indicate, è presente un'opzione per esaminare localmente, a condizione che tu abbia i file localmente e segua le convenzioni di denominazione compatibili con SourceWolf.
Memorizza tutte le risposte in una directory, ad esempio responses/
python3 sourcewolf.py --local responses/
Questo esaminerà la directory locale e ti fornirà i risultati.