[M] ContentDiscovery
Общее описание
Используется для поиска файлов и директорий на основе словаря популярных имён, а также уже известных URL.
ContentDiscovery является обёрткой вокруг DafsDict, которая генерирует словарь искомых объектов. Как только словарь готов, запускается DafsDict и начинает поиск. Соответственно, модуль ContentDiscovery имеет логику и параметры модуля DafsDict. Он лишь добавляет к ним несколько параметров описанных ниже.
В config.ini вы можете найти опцию skip_listing, которая во включенном состоянии не позволит начинать работу с директориями, которые являются листингами. По умолчанию она включена.
Генерация словаря
В начале работы модуль генерирует словарь куда складывает множество искомых имён генерируемых по следующим схемам:
Годы с 2010 по текущий
Имена из базы bases/content-discovery/base.txt в чистом виде и с расширениями из списка опции «--discovery-exts».
Имена из базы bases/content-discovery/tools-and-others.txt
Все комбинации букв нижнего регистра и цифр длиною до 2 символов включительно (маска ?l?d,1,2). В чистом виде и с расширениями из списка опции «--discovery-exts»
Если вы указали список уже известных URL в параметре «--urls-file», то на его основе также генерируются искомые имена. Каждый URL разбивается на отдельные части (/a/b/c => a, b, c), при этом имя файла учитывается как полностью, так и без расширения (/a/log.txt => a, log, log.txt). Для каждой из частей имени генерируются варианты по следующим схемам:
Чистый вид (без модификаций).
Варианты резервных копий имени. Шаблоны для них берутся из bases/content-discovery/backup-schemas.txt. В каждом шаблоне подстрока «|name|» заменяется на целевое имя.
Варианты с изменёнными цифрами в конце и начале имени. Подробно об этом читайте в разделе «Генерация вариантов имён содержащих числа».
Варианты с изменёнными буквами в конце и начале имени. Подробно об этом читайте в разделе «Генерация вариантов имён содержащих буквы».
Варианты с расширениями из списка опции «--discovery-exts»
Обратите внимание на то, что поиск происходит в конкретной директории, путь к которой вы указали в параметре «--template». Модуль проверяет в ней имена директорий/файлов и их модификации. Пути из списка ранее найденных URL не проверяются, лишь отдельные имена на которые они разбиваются.
Генерация вариантов имён содержащих числа
Если в начале имени присутствует цифра, то генерируются все варианты имени в котором вместо этой цифры ставятся числа от 1 до 9 включительно (1admin => 2admin, 3admin, …, 9admin). Аналогично с цифрами в конце имени (admin1=>admin2,...,admin9). Это касается и имён файлов в которых цифра идёт перед расширением (admin1.php => admin2.php, …, admin9.php). Если цифры находятся и в начале и в конце имени, то вариации для них генерируются с одинаковыми цифрами в обоих местах (1admin1 => 2admin2, 3admin3,…). Обратите внимание на то, что меняются только крайние цифры. Например, в имени «12admin34.php» будут изменены цифры 1 и 4. т. к. они находятся по краям имени.
Генерация вариантов имён содержащих буквы
Если в начале имени присутствует буква, то генерируются все варианты имени в котором вместо этой буквы ставятся другие буквы того же регистра (admin => bdmin, cdmin, …, zdmin). Аналогично с буквами в конце имени (admin => admia,...,admib). Это касается и имён файлов в которых буква идёт перед расширением (admin.php => admia.php, …, admiz.php).
Примеры
Простой запуск для поиска новых URL:
Опции (* - обязательные)
R - присутствует ли в raw режиме S - присутствует ли в selenium режиме.
Имя
По умолчанию
R
S
Описание
--urls-file
Да
Да
Путь к списку уже известных URL. Целевой хост и хост этих URL не обязательно должны совпадать.
--discovery-exts
php,html,js,log,txt
Да
Да
Список расширений для генерации искомых имён.
Остальные опции вы можете найти в описании модуля DafsDict.
Last updated
Was this helpful?