
Инструмент для генерации и поддержки словарей (wordlists) для веб-фаззинга.
Dicozorus — это инструмент для генерации и поддержки веб-словников (wordlist).
Он устраняет необходимость управления множеством словников, сохраняя пути, обогащённые метаданными, в локальной базе данных SQLite.
Нужен просто отличный словник без инструмента? Пропустите установку и используйте lazy.txt.
Стандартные словники часто имеют такие проблемы, как отсутствующие записи, отсутствие релевантной сортировки, неподходящий размер или мусорные записи.
Dicozorus решает эти проблемы, связывая записи с обогащёнными метаданными. Это позволяет:
$ pipx install git+https://github.com/synacktiv/dicozorus/
Dicozorus хранит данные локально в базе данных SQLite, расположенной по адресу $HOME/.dicozorus/db.sqlite. Каждая запись отслеживает следующие атрибуты:
| Поле | Описание |
|---|---|
| path | Имя конечной точки (например, jmx-console/ или app-dev.php). |
| type | Структурная классификация: FILE, DIRECTORY или PATH. |
| criticality | Уровень приоритета: CRITICAL, HIGH, MEDIUM, LOW, INFO, UNRANKED. |
| count | Сколько раз этот конкретный URL был добавлен в базу данных. |
| category | Тип уязвимости, к которой он привязан (например, RCE, ADMIN_INTERFACE или KNOWN_APP). |
| tag | Контекстные теги для фильтрации по технологиям (например, PHP, JAVA, LINUX). |
| reference | Необязательная ссылка на связанную уязвимость, рекомендацию или документацию известной конечной точки. |
Для большего удобства dicozorus поставляется со встроенными словниками. Записи в этих словниках взяты из различных источников:
dirsearch, bo0om, Seclist, nuclei и т. д.)
| Имя | Описание |
|---|---|
| critical.wordlist | Только записи CRITICAL |
| high.wordlist | Только записи HIGH |
| medium.wordlist | Только записи MEDIUM |
| low.wordlist | Только записи LOW |
| info.wordlist | Только записи INFO |
| unranked.wordlist | Записи без заданной критичности |
| bo0om.wordlist | Записи из словника BoOoM без заданной критичности |
| dirsearch.wordlist | Записи из словника dirsearch без заданной критичности |
| exploitdb.wordlist | Записи из exploitDB без заданной критичности |
| hackerone.wordlist | Записи из публичных отчётов HackerOne без заданной критичности |
| seen.wordlist | Записи, которые встречались тут и там, без заданной критичности |
| dangerous.wordlist | Опасные записи, такие как /shutdown или reboot |
Каждый раз, когда во встроенные словники вносятся изменения, создаётся файл lazy.txt. Он включает все встроенные записи, кроме опасных, отсортированные по критичности и количеству.
$ 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
[...]
Если вы хотите добавить записи в основные списки или нативно разбирать пользовательские входные данные, используйте следующую структуру значений, разделённых запятыми (CSV), с кавычками:
## path, criticality, count, category, tags, reference
"actions/authenticate.php","CRITICAL","1","RCE","PHP","https://nvd.nist.gov/vuln/detail/CVE-2020-35729"
Вот несколько правил при добавлении записей во встроенные словники:
upload.php, admin.aspx, webshell.jsp, administration/