
Potente fuzzer di directory web mutabile per effettuare brute force su file o directory esistenti e/o nascosti.
██╗ ██╗██████╗ ██╗ ██████╗ ██╗ ██╗███████╗████████╗███████╗██████╗
██║ ██║██╔══██╗██║ ██╔══██╗██║ ██║██╔════╝╚══██╔══╝██╔════╝██╔══██╗
██║ ██║██████╔╝██║ ██████╔╝██║ ██║███████╗ ██║ █████╗ ██████╔╝
██║ ██║██╔══██╗██║ ██╔══██╗██║ ██║╚════██║ ██║ ██╔══╝ ██╔══██╗
╚██████╔╝██║ ██║███████╗██████╔╝╚██████╔╝███████║ ██║ ███████╗██║ ██║
╚═════╝ ╚═╝ ╚═╝╚══════╝╚═════╝ ╚═════╝ ╚══════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝
Potente strumento di fuzzing per directory web, per individuare file o directory esistenti e/o nascosti.
pip install urlbuster
usage: urlbuster [options] -w <str>/-W <file> BASE_URL
urlbuster -V, --help
urlbuster -h, --version
Bruteforcer di URL per individuare file o directory esistenti e/o nascosti.
Simile a dirb o gobuster, ma permette anche di iterare su più metodi di richiesta HTTP,
più user-agent e più valori dell'intestazione Host.
positional arguments:
BASE_URL URL di base da scansire.
required arguments:
-w str, --word str Parola da usare.
-W f, --wordlist f Percorso della wordlist da usare.
optional global arguments:
-n, --new Usa una nuova connessione per ogni richiesta.
Se non specificato, verrà utilizzata una connessione http persistente per tutte le richieste.
Nota: usare una nuova connessione ridurrà le prestazioni,
ma garantirà uno stato pulito per ogni richiesta.
Una connessione persistente, d'altro canto, utilizzerà eventuali cookie aggiuntivi
ricevuti da una richiesta precedente.
-f, --follow Segui i reindirizzamenti.
-k, --insecure Non verificare i certificati TLS.
-v, --verbose Mostra anche gli URL non trovati.
--code str [str ...] Codice di stato HTTP da considerare come successo.
Puoi usare '.' (punto) come carattere jolly.
Default: 2.. 3.. 403 407 411 426 429 500 505 511
--payload p [p ...] Payload POST, PUT e PATCH per tutte le richieste.
Nota: sono ammessi più valori per più payload.
Nota: se vengono specificati duplicati, l'ultimo sovrascriverà.
Vedi --mpayload per le mutazioni.
Formato: <chiave>=<valore> [<chiave>=<valore>]
--header h [h ...] Stringa di intestazione HTTP personalizzata da aggiungere a tutte le richieste.
Nota: sono ammessi più valori per più intestazioni.
Nota: se vengono specificati duplicati, l'ultimo sovrascriverà.
Vedi --mheaders per le mutazioni.
Formato: <chiave>:<valore> [<chiave>:<valore>]
--cookie c [c ...] Stringa di cookie da aggiungere a tutte le richieste.
Formato: <chiave>=<valore> [<chiave>=<valore>]
--proxy str Usa un proxy per tutte le richieste.
Formato: http://<host>:<porta>
Formato: http://<utente>:<password>@<host>:<porta>
Formato: https://<host>:<porta>
Formato: https://<utente>:<password>@<host>:<porta>
Formato: socks5://<host>:<porta>
Formato: socks5://<utente>:<password>@<host>:<porta>
--auth-basic str Usa l'autenticazione di base per tutte le richieste.
Formato: <utente>:<password>
--auth-digest str Usa l'autenticazione digest per tutte le richieste.
Formato: <utente>:<password>
--timeout sec Timeout di connessione in secondi per ogni richiesta.
Default: 5.0
--retry num Tentativi di connessione per richiesta.
Default: 3
--delay sec Ritardo tra le richieste per non sovraccaricare il server.
--output file File di output in cui scrivere i risultati.
optional mutating arguments:
I seguenti argomenti aumenteranno il numero totale di richieste da effettuare
applicando varie mutazioni e testando ogni mutazione su una richiesta separata.
--method m [m ...] Elenco di metodi HTTP da testare per ogni richiesta.
Nota: ogni metodo fornito raddoppierà il numero di richieste.
Metodi supportati: GET POST PUT DELETE PATCH HEAD OPTIONS
Default: GET
--mpayload p [p ...] Payload POST, PUT e PATCH per mutare tutte le richieste.
Nota: sono ammessi più valori per più payload.
Formato: <chiave>=<valore> [<chiave>=<valore>]
--mheader h [h ...] Stringa di intestazione HTTP personalizzata da aggiungere per mutare tutte le richieste.
Nota: sono ammessi più valori per più intestazioni.
Formato: <chiave>:<valore> [<chiave>:<valore>]
--ext ext [ext ...] Elenco di estensioni di file da aggiungere alle parole per il test.
Nota: ogni estensione fornita raddoppierà il numero di richieste.
Formato: .zip [.pem]
--slash str Aggiungi o ometti una barra finale agli URL per il test.
Nota: la barra verrà aggiunta dopo le estensioni, se specificate.
Nota: usando 'both' raddoppierà il numero di richieste.
Opzioni: both, yes, no
Default: no
misc arguments:
-h, --help Mostra questo messaggio di aiuto ed esci
-V, --version Mostra le informazioni sulla versione
esempi
urlbuster -W /path/to/words http://example.com/
urlbuster -W /path/to/words http://example.com:8000/
urlbuster -k -W /path/to/words https://example.com:10000/
Alcuni siti web si comportano diversamente per lo stesso percorso a seconda dello user-agent specificato.
$ urlbuster \
-W /usr/share/dirb/wordlists/common.txt \
--mheader 'User-Agent:Googlebot/2.1 (+http://www.googlebot.com/bot.html)' \
--method 'POST,GET,DELETE,PUT,PATCH' \
http://www.domain.tld/
██╗ ██╗██████╗ ██╗ ██████╗ ██╗ ██╗███████╗████████╗███████╗██████╗
██║ ██║██╔══██╗██║ ██╔══██╗██║ ██║██╔════╝╚══██╔══╝██╔════╝██╔══██╗
██║ ██║██████╔╝██║ ██████╔╝██║ ██║███████╗ ██║ █████╗ ██████╔╝
██║ ██║██╔══██╗██║ ██╔══██╗██║ ██║╚════██║ ██║ ██╔══╝ ██╔══██╗
╚██████╔╝██║ ██║███████╗██████╔╝╚██████╔╝███████║ ██║ ███████╗██║ ██║
╚═════╝ ╚═╝ ╚═╝╚══════╝╚═════╝ ╚═════╝ ╚══════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝
0.5.1 by cytopia
IMPOSTAZIONI
URL di base: https://www.everythingcli.org/
Codici validi: 2.., 3.., 403, 407, 411, 426, 429, 500, 505, 511
Connessione: Non persistente
Reindirizzamenti: Non seguire
Payload: Nessuno
Timeout: 5.0s
Tentativi: 3
Ritardo: Nessuno
MUTAZIONI
Intestazioni mutanti: 2
Payload mutanti: 0 (POST)
Metodi: 5 (POST, GET, DELETE, PUT, PATCH)
Barre: no
Estensioni: 1 (estensione vuota)
Parole: 4614
TOTALE RICHIESTE: 46140
ORA INIZIO: 2020-01-29 08:52:12
--------------------------------------------------------------------------------
Connection: keep-alive
Accept-Encoding: gzip, deflate
Accept: */*
User-Agent: python-requests/2.22.0
[301] [GET] http://domain.tld/robots.txt
--------------------------------------------------------------------------------
Connection: keep-alive
Accept-Encoding: gzip, deflate
Accept: */*
User-Agent: Googlebot/2.1 (+http://www.googlebot.com/bot.html)
[200] [GET] http://domain.tld/robots.txt
[301] [POST] http://domain.tld/robots.txt
[301] [GET] http://domain.tld/robots.txt
[301] [DELETE] http://domain.tld/robots.txt
[301] [PUT] http://domain.tld/robots.txt
[301] [PATCH] http://domain.tld/robots.txt
$ urlbuster \
-W /path/to/wordlist.txt \
http://www.domain.tld/
$ urlbuster \
-W /path/to/wordlist.txt \
--proxy 'http://localhost:8080' \
http://www.domain.tld/
$ urlbuster \
-W /path/to/wordlist.txt \
--output out.txt \
http://www.domain.tld/
$ urlbuster \
-W /path/to/wordlist.txt \
--auth-basic 'utente:password' \
http://www.domain.tld/
$ urlbuster \
-W /path/to/wordlist.txt \
--cookie 'PHPSESSID=a79b00e7-035a-2bb4-352a-439d855feabf' \
http://www.domain.tld/
$ urlbuster \
-W /path/to/wordlist.txt \
--code 200 301 302 \
--ext .zip .tar .tar.gz .gz .rar \
http://www.domain.tld/
$ urlbuster \
-W /path/to/wordlist.txt \
--code 200 301 302 \
--ext .zip .tar .tar.gz .gz .rar \
http://www.domain.tld/wp-content/
$ urlbuster \
-W /path/to/wordlist.txt \
--method GET \
--code 200 301 302 \
http://www.domain.tld/search?q=
$ urlbuster \
-W /path/to/wordlist.txt \
--code 200 301 302 \
--method POST \
--payload \
'user=somename' \
'pass=somepass' \
'[email protected]' \
'submit=yes' \
http://www.domain.tld/
$ urlbuster \
-w index.php \
--code 200 301 302 \
--method POST \
--mpayload \
'user=somename1' \
'user=somename2' \
'user=somename3' \
'pass=somepass1' \
'pass=somepass2' \
'pass=somepass3' \
'[email protected]' \
'[email protected]' \
'[email protected]' \
'submit=yes' \
http://www.domain.tld/wp-admin/
$ urlbuster \
-W /path/to/wordlist.txt \
--code 5.. \
--method GET POST \
--mheader \
"User-Agent: ;" \
"User-Agent: ' or \"" \
"User-Agent: -- or #" \
"User-Agent: ' OR '1" \
"User-Agent: ' OR 1 -- -" \
"User-Agent: \" OR 1 = 1 -- -" \
"User-Agent: '='" \
"User-Agent: 'LIKE'" \
"User-Agent: '=0--+" \
"User-Agent: OR 1=1" \
"User-Agent: ' OR 'x'='x" \
"User-Agent: ' AND id IS NULL; --" \
http://www.domain.tld/
$ urlbuster \
-w / \
--method GET POST \
--mheader \
"Host: internal1.lan" \
"Host: internal2.lan" \
"Host: internal3.lan" \
"Host: internal4.lan" \
"Host: internal5.lan" \
"Host: internal6.lan" \
http://10.0.0.1
Di seguito è riportato un elenco di strumenti di sicurezza e documenti che mantengo.
| Nome | Categoria | Linguaggio | Descrizione |
|---|---|---|---|
| offsec | Documentazione | Markdown | Checklist offsec, strumenti ed esempi |
| header-fuzz | Enumerazione | Bash | Fuzzare le intestazioni HTTP |
| smtp-user-enum | Enumerazione | Python 2+3 | Enumeratore utenti SMTP |
| urlbuster | Enumerazione | Python 2+3 | Fuzzer mutabile per directory web |
| netcat | Pivoting | Python 2+3 | Netcat multipiattaforma |
| badchars | Reverse Engineering | Python 2+3 | Generatore di caratteri non validi |
| fuzza | Reverse Engineering | Python 2+3 | Strumento di fuzzing TCP |
Vedi le Linee guida per contribuire per aiutare a migliorare questo progetto.
Questo strumento può essere utilizzato solo per scopi legali. Gli utenti si assumono la piena responsabilità di qualsiasi azione eseguita con questo strumento. L'autore non si assume alcuna responsabilità per i danni causati da questo strumento. Se questi termini non sono accettabili, non utilizzare questo strumento.
Copyright (c) 2020 cytopia