
Uno strumento per generare e mantenere wordlist per il fuzzing web.
Dicozorus è uno strumento per generare e gestire wordlist web.
Elimina l'onere di gestire più wordlist archiviando percorsi arricchiti con metadati in un database SQLite locale.
Vuoi solo un'ottima wordlist senza lo strumento? Salta la configurazione e usa lazy.txt.
Le wordlist standard presentano spesso problemi come voci mancanti, ordinamento poco pertinente, dimensioni inappropriate o voci spazzatura.
Dicozorus risolve questi problemi associando alle voci metadati arricchiti. Questo consente di:
$ pipx install git+https://github.com/synacktiv/dicozorus/
Dicozorus archivia i dati localmente in un database SQLite situato in $HOME/.dicozorus/db.sqlite. Ogni voce tiene traccia dei seguenti attributi:
| Campo | Descrizione |
|---|---|
| path | Il nome dell'endpoint (ad es. jmx-console/ o app-dev.php). |
| type | Classificazione strutturale: FILE, DIRECTORY o PATH. |
| criticality | Livello di priorità: CRITICAL, HIGH, MEDIUM, LOW, INFO, UNRANKED. |
| count | Quante volte questo specifico URL è stato inserito nel database. |
| category | Tipo di vulnerabilità a cui è associata (ad es. RCE, ADMIN_INTERFACE o KNOWN_APP) |
| tag | Tag contestuali per il filtraggio tecnologico (ad es. PHP, JAVA, LINUX). |
| reference | Un collegamento opzionale a una vulnerabilità, a un advisory o alla documentazione di un endpoint noto associato. |
Per maggiore comodità, dicozorus è dotato di wordlist integrate. Le voci presenti in queste wordlist provengono da diverse fonti:
dirsearch, bo0om, Seclist, nuclei, ecc.)
| Nome | Descrizione |
|---|---|
| critical.wordlist | Solo voci CRITICAL |
| high.wordlist | Solo voci HIGH |
| medium.wordlist | Solo voci MEDIUM |
| low.wordlist | Solo voci LOW |
| info.wordlist | Solo voci INFO |
| unranked.wordlist | Voci senza criticalità associata |
| bo0om.wordlist | Voci dalla wordlist BoOoM senza criticalità associata |
| dirsearch.wordlist | Voci dalla wordlist dirsearch senza criticalità associata |
| exploitdb.wordlist | Voci da exploitDB senza criticalità associata |
| hackerone.wordlist | Voci dai report pubblici HackerOne senza criticalità associata |
| seen.wordlist | Voci trovate qua e là, senza criticalità associata |
| dangerous.wordlist | Voci pericolose come /shutdown o reboot |
Ogni volta che viene apportata una modifica alle wordlist integrate, viene generato lazy.txt. Include tutte le voci integrate tranne quelle pericolose, ordinate per criticalità e count.
$ dicozorus
usage: dicozorus [-h] [-v] [--version] {feed,gen,init,modify,stats,check} ...
Dicozorus allows to generate custom wordlists. It can be fed with wordlists from your own or initialized using a predefined set of wordlists. Entries are
stored in a sqlite database located in $HOME/.dicozorus/db.sqlite
positional arguments:
{feed,gen,init,modify,stats,check}
Subcommand to run
feed Feed dicozorus db with wordlist files or scan results
gen Generate wordlist using the dicozorus db.
init Initialize the dicozorus database.
modify Modify dicozorus DB directly. Use it to add / remove / update one or multiple entries.
stats Show stats about the dicozorus database.
check The check command is used to compare entry or wordlists with the dicozorus database
options:
-h, --help show this help message and exit
-v, --verbose increase verbosity
--version show program's version number and exit
$ dicozorus init -F -W wordlists/
[+] Initializing dicozorus database
[+] Creating dicozorus tables
[+] Parsing dicozorus CSV file wordlists/low.wordlist
[+] Parsing dicozorus CSV file wordlists/unranked.wordlist
[+] Parsing dicozorus CSV file wordlists/hackerone.wordlist
[+] Parsing dicozorus CSV file wordlists/medium.wordlist
[+] Parsing dicozorus CSV file wordlists/exploitdb.wordlist
[+] Parsing dicozorus CSV file wordlists/critical.wordlist
[+] Parsing dicozorus CSV file wordlists/high.wordlist
[+] Parsing dicozorus CSV file wordlists/bo0om.wordlist
[+] Parsing dicozorus CSV file wordlists/seen.wordlist
[+] Parsing dicozorus CSV file wordlists/info.wordlist
[+] Parsing dicozorus CSV file wordlists/dirsearch.wordlist
$ dicozorus feed -w fuzz.txt
[+] Parsing wordlist fuzz.txt
$ dicozorus gen -m 5
app_dev.php
actuator/jolokia
jolokia
bitrix/admin/php_command_line.php
jenkins/script
$ dicozorus check -e '_fragment'
_fragment [type: FILE, criticality: CRITICAL, count: 2, category: RCE, taglist: ['PHP', 'Bo0oM'], reference: https://www.ambionics.io/blog/symfony-secret-fragment]
$ dicozorus stats
[+] Total count: 22376
[+] Entry count by criticality:
Critical: 344
High: 697
Medium: 668
Low: 1168
Info: 4262
Unranked: 15237
[+] Entry count by type:
FILE: 12583
DIRECTORY: 3449
PATH: 6344
[+] Entry count by category:
UNCATEGORIZED: 19499
KNOWN_APP: 871
RCE: 335
INFO_LEAK: 280
[...]
Se vuoi contribuire con voci alle liste principali o analizzare nativamente input personalizzati, usa la seguente struttura a valori separati da virgola (CSV) con campi tra virgolette:
## path, criticality, count, category, tags, reference
"actions/authenticate.php","CRITICAL","1","RCE","PHP","https://nvd.nist.gov/vuln/detail/CVE-2020-35729"
Ecco alcune regole per aggiungere voci alle wordlist integrate:
upload.php, admin.aspx, webshell.jsp, administration/