Оглавление
dirsearch — инструмент командной строки, основанный на Python3.,Обычно используется для грубого сканирования структуры страницы.,В том числе Оглавление и файлы на веб-страницах. По сравнению с другими инструментами сканирования, disearch имеет следующие особенности:
Требования: Python 3.7 или выше.
Среди них папка db — это встроенная папка словаря; report — папка журнала сканирования; dirsearch.py — основной файл программы;
Установить с помощью Git
git clone https://github.com/maurosoria/dirsearch.git
Установить с помощью ZIP-файла
https://github.com/maurosoria/dirsearch/archive/master.zip
Установить с помощью Docker
Подробности:GitHub – maurosoria/dirsearch: Web path scanner
Docker build-t“dirsearch:v0.4.1
Использование Кали установка Linux
sudo apt-get Install dirsearch
Установить с помощью PYPI
PIP3 Install DirSearch
ПРИМЕЧАНИЕ. *Чтобы использовать функциональность SOCKSактерское мастерство, установите пакет с **Requirements.txt**:
pip3 install -r requirements.txt
Установите вместе:
git clone https://github.com/maurosoria/dirsearch.git
cd dirsearch
pip3 install -r requirements.txt
Демонстрационное видео: https://asciinema.org/a/380112.svg
Адрес: https://asciinema.org/a/380112
python3 dirsearch.py -u https://target
python3 dirsearch.py -e php,html,js -u https://target
python3 dirsearch.py -e php,html,js -u https://target -w /path/to/wordlist
- При использовании параметра **-r–recursive** dirsearch будет вынужден рекурсивно выполнять все Оглавление.
python3 dirsearch.py -e php,html,js -u https://target -r
Вы можете использовать **–recursion-length**, чтобы установить максимальную глубину рекурсии, и **–recursion-status**, чтобы установить код состояния рекурсии.
python3 dirsearch.py -e php,html,js -u https://target -r --recursion-depth 3 --recursion-status 200-399
Есть еще 2 параметра: **–force-recursive** и **–deep-recursive**.
принудительная рекурсия (принудительная рекурсия): принудительно рекурсивно рекурсировать все найденные пути, а не только пути, заканчивающиеся на `/` deep-recursive(глубокая рекурсия):Все глубины рекурсивных путей грубой силы(`a/b/c`=>add`a/`,`a/b/`)
Число нит (**-t | –threads**) отражает количество отсоединенных мощных процессов. поэтому,нить Чем больше число,dirsearch работает быстрее. По умолчанию,нить Число30,Но если вы хотите ускорить прогресс,Можно увеличить.
несмотря на это,Скорость по-прежнему сильно зависит от времени ответа сервера. как предупреждение,Рекомендуется, чтобы количество нитей не было слишком большим.,Потому что это может вызвать DOS.
python3 dirsearch.py -e php,htm,js,bak,zip,tgz,txt -u https://target -t 20
--prefixes: добавить пользовательские префиксы ко всем записям.
python3 dirsearch.py -e php -u https://target --prefixes .,admin,_
Базовый путь:
tools
После добавления префикса:
.tools admintools _tools
--suffixes: добавить пользовательские суффиксы ко всем записям.
python3 dirsearch.py -e php -u https://target --suffixes ~
Базовый путь:
index.php internal
После добавления суффикса:
index.php~ internal~
В папке «db/»,Имеется несколько "черных файлов". Если путь в этих файлах совпадает со статусом, указанным в имени файла,Пути в этих файлах будут отфильтрованы из результатов сканирования.
Пример: Если `admin.php` добавлен в `db/403_blacklist.txt`, то при каждом сканировании `admin.php`, возвращающий 403, будет отфильтрован из результатов.
Используйте **-i-include-status** и **-x-exclude-status**, чтобы выбрать коды состояния ответа: разрешить или запретить.
Более продвинутые фильтры: **–exclude-sizes**, **–exclude-texts**, **–exclude-regexps**, **–exclude-redirects** и **–exclude-content**
python3 dirsearch.py -e php,html,js -u https://target --exclude-sizes 1B,243KB
python3 dirsearch.py -e php,html,js -u https://target --exclude-texts "403 Forbidden"
python3 dirsearch.py -e php,html,js -u https://target --exclude-regexps "^Error$"
python3 dirsearch.py -e php,html,js -u https://target --exclude-redirects "https://(.*).okta.com/*"
python3 dirsearch.py -e php,html,js -u https://target --exclude-content /error.html
dirsearch позволяет импортировать исходный запрос из файла. Содержание следующее:
GET /admin HTTP/1.1
Host: admin.example.com
Cache-Control: max-age=0
Accept: */*
Поскольку у dirsearch нет возможности узнать, что такое схема URI, ее необходимо установить с помощью флага --scheme. По умолчанию используется схема «HTTP», что приводит к большому количеству ложноотрицательных результатов.
Поддерживаемые форматы списков слов: прописные, строчные, заглавные буквы.
Lowercase
admin index.html
Uppercase:
ADMIN INDEX.HTML
Capital
Admin Index.html
Использование списка расширений **-x --exclude-extensions** приведет к удалению всех путей в списке слов, содержащих данное расширение.
python3 dirsearch.py -u https://target -X jsp
Базовый путь:
admin.php test.jsp
исключить расширениеназад:
admin.php
- Если вы хотите исключить все расширения, кроме тех, которые выбраны с помощью флага «-e», используйте **–only-selected**.
python3 dirsearch.py -e html -u https://target --only-selected
Базовый путь:
index.html admin.php
исключить расширениеназад:
index.html
- Из URL-адреса вы можете использовать **–subdirs** Сканировать список подкаталогов.
python3 dirsearch.py -e php,html,js -u https://target --subdirs admin/,folder/,/
- Обратная версия — **–exclude-subdirs**, которая предотвращает рекурсивное сканирование dirsearch для заданных подкаталогов.
python3 dirsearch.py -e php,html,js -u https://target --recursive --exclude-subdirs image/,css/
dirsearch поддерживает SOCKS и HTTPактерское мастерство,Есть два параметра: актеры мастерствосерверилиактерское мастерствосерверсписок。
python3 dirsearch.py -e php,html,js -u https://target --proxy 127.0.0.1:8080
python3 dirsearch.py -e php,html,js -u https://target --proxy socks5://10.10.0.1:8080
python3 dirsearch.py -e php,html,js -u https://target --proxylist proxyservers.txt
Поддерживаемые форматы отчетов: **Простой**, **Обычный**, **JSON**, **XML**, **MD**, **CSV**, **HTML**.
python3 dirsearch.py -e php -l URLs.txt --format plain -o report.txt
python3 dirsearch.py -e php -u https://target --format html -o target.json
Есть еще много функций, которые вам нужно открыть самостоятельно.
python3 dirsearch.py -u https://target -t 100 -m POST --data "username=admin"
python3 dirsearch.py -u https://target --random-agent --cookie "isAdmin=1" -F
python3 dirsearch.py -u https://target --format json -o target.json
python3 dirsearch.py -u https://target --auth admin:pass --auth-type basic
python3 dirsearch.py -u https://target --header-list rate-limit-bypasses.txt
python3 dirsearch.py -u https://target -q --stop-on-error --max-time 360
python3 dirsearch.py -u https://target --full-url --max-rate 100
python3 dirsearch.py -u https://target --remove-extensions
-На сервере есть лимиты запросов? Это плохо, но этого можно обойти, рандомизировав прокси с помощью --proxy-list. - Хотите найти файлы конфигурации или резервные копии? Попробуйте `-суффиксы ~` и `-префиксы .` - Просто хочу найти папку /Оглавление? Почему бы не объединить '--remove-extensions' и '--suffixes/`! – The mix of `–cidr`, `-F`, `-q` and will reduce most of noises + false negatives when brute-forcing with a CIDR -Сканируйте список URL-адресов, но не хотите видеть ошибку 429. flood?`–Skip-on-Status 429` поможет вам пропустить цель при возврате 429. -На сервере содержатся большие файлы, которые замедляют сканирование? Возможно, вы захотите использовать HTTP-метод `head` вместо `get`. -Brute-forcing CIDR медленный? Возможно, вы забыли уменьшить время ожидания запроса и количество повторных попыток запроса. Предложение: `–timeout 3 –retries 1`
Использование: dirsearch.py [-u|–url] целевые [-e|–extensions] расширения [параметры]
--version Отобразить номер версии программы и выйти
-h, --help Показать это справочное сообщение и выйти
-u URL, --url=URL Целевой URL
-l FILE, --url-list=FILE
Целевой URLсписок文件
--stdin Целевой из STDIN URLсписок
--cidr=CIDR Цель CIDR
--raw=FILE Файл загружает необработанный HTTP-запрос из файла (используйте флаг `--Scheme`, чтобы установить схему)
-e EXTENSIONS, --extensions=EXTENSIONS
Список расширений, разделенных запятыми (например: php, asp)
-X EXTENSIONS, --exclude-extensions=EXTENSIONS
Список расширений, разделенных запятыми, которые следует исключить (например: asp, jsp)
-f, --force-extensions
Добавьте расширение к каждой записи списка слов. По умолчанию dirsearch заменяет только ключевое слово %ext% расширениями.
-w WORDLIST, --wordlists=WORDLIST
Пользовательский список слов (через запятую)
--prefixes=PREFIXES
Добавить собственный префикс ко всем записям списка слов (через запятую)
--suffixes=SUFFIXES
Добавить собственный суффикс ко всем записям списка слов, игнорируя Оглавление (через запятую)
--only-selected Удалить пути с расширениями, отличными от выбранных через `-e` (оставить записи без расширения)
--remove-extensions
Удалите расширения со всех путей (например: admin.php -> admin)
-U, --uppercase Uppercase wordlist
-L, --lowercase Lowercase wordlist
-C, --capital Capital wordlist
-t THREADS,--threads=THREADS
нитьчисло -r, --recursive Рекурсия грубой силы
--deep-recursive Выполнять рекурсивное для каждой глубины Оглавления сканирование(Например: api/users -> api/)
--force-recursive Выполняйте рекурсивный перебор для каждого найденного пути вместо того, чтобы иметь пути, заканчивающиеся косой чертой.
--recursion-depth=DEPTH
максимальная глубина рекурсии
--recursion-status=CODES
осуществлятьрекурсивное Действительные коды состояния для сканирования, поддерживаемые диапазоны (через запятую)
--subdirs=SUBDIRS Сканировать заданные URL-адреса на предмет подтипов (после запятых).
--exclude-subdirs=SUBDIRS
Исключить следующие сканы суб-Оглавления (разделенные запятыми) во время рекурсии
-i CODES, --include-status=CODES
Включите коды состояния, разделенные запятыми, и поддерживаемые диапазоны (пример: 200,300–399).
-x CODES, --exclude-status=CODES
Исключить коды состояния, разделенные запятыми, поддерживаемые диапазоны (пример: 301 500–599).
--exclude-sizes=SIZES
Исключить ответы по размеру, разделенному запятыми (например: 123Б, 4КБ).
--exclude-texts=TEXTS
Исключать ответы по тексту, разделенному запятыми (например: «не found'、'error')
--exclude-regexps=REGEXPS
Регулярное выражение, разделенное запятыми, для исключения ответов (например: «не foun[a-z]{1}”,“^error$”)
--exclude-redirects=REGEXPS
Исключайте ответы с помощью регулярного выражения перенаправления или текста, разделенного запятыми (например: «https://okta.com/*»)
--exclude-content=PATH
Исключить ответы по содержимому ответа для этого пути
--skip-on-status=CODES
Пока достигнут один из кодов состояния, пропустите цель, разделенную запятыми, поддерживаются диапазоны.
--minimal=LENGTH Минимальная длина ответа
--maximal=LENGTH Максимальная длина ответа
--max-time=SECONDS Максимальное время сканирования
-q, --quiet-mode Тихий режим
--full-url Полный URL в выводе (в Тихий режим)
--no-color Нет цвета Нет цветопередачи
-m METHOD, --http-method=METHOD
Метод HTTP (по умолчанию: GET)
-d DATA, --data=DATA
Данные HTTP-запроса
-H HEADERS, --header=HEADERS
Заголовок HTTP-запроса, поддерживает несколько флагов (например: -H 'Referer: example.com')
--header-list=FILE Файл содержит заголовки HTTP-запроса.
-F, --follow-redirects
Следуйте HTTP-перенаправлениям
--random-agent Выбор случайного актера для каждого запроса мастерство
--auth-type=TYPE Тип аутентификации (basic, digest, bearer, ntlm)
--auth=CREDENTIAL Учетные данные аутентификации (user:password or bearer token)
--user-agent=USERAGENT
--cookie=COOKIE
--timeout=TIMEOUT таймаут соединения таймаут
-s DELAY, --delay=DELAY
Задержка между запросами
--proxy=PROXY актерское мастерствоURL,Поддерживает HTTP и SOCKSактерское мастерство (например: localhost:8080).,socks5://localhost:8088)
--proxy-list=FILE Файл содержит актёрское мастерствосервер
--replay-proxy=PROXY
актерское, используя найденный путь для повтора мастерство
--scheme=SCHEME Схема по умолчанию (для исходного запрос или если в URL нет схемы)
--max-rate=RATE Максимальное количество запросов в секунду
--retries=RETRIES Количество попыток повторения неудачных запросов
-b, --request-by-hostname
По умолчанию dirsearch запрашивает скорость по IP. Это заставит dirsearch запрашивать имя хоста.
--ip=IP Выход при возникновении ошибки
Отчет:
-o FILE, --output=FILE
выходной файл
--format=FORMAT формат формата отчета (доступны: простой, простой, json, xml, md, csv, html)
Значение флага dirsearch по умолчанию можно изменить в файле конфигурации: `Default.conf`
# Если вы хотите отредактировать Конфигурацию dirsearch по умолчанию, вы можете отредактировать значения в этом файле. Все, что после '#', является комментарием и не будет применено.
[mandatory]
default-extensions = php,aspx,jsp,html,js
force-extensions = False
# exclude-extensions = old,log
[general]
threads = 30
recursive = False
deep-recursive = False
force-recursive = False
recursion-depth = 0
exclude-subdirs = %%ff/
random-user-agents = False
max-time = 0
full-url = False
quiet-mode = False
color = True
recursion-status = 200-399,401,403
# include-status = 200-299,401
# exclude-status = 400,500-999
# exclude-sizes = 0b,123gb
# exclude-texts = "Not found"
# exclude-regexps = "403 [a-z]{1,25}"
# exclude-content = 404.html
# skip-on-status = 429,999
[reports]
report-format = plain
autosave-report = True
# report-output-folder = /home/user
# logs-location = /tmp
## Supported: plain, simple, json, xml, md, csv, html
[dictionary]
lowercase = False
uppercase = False
capitalization = False
# prefixes = .,admin
# suffixes = ~,.bak
# wordlist = db/dicc.txt
[request]
httpmethod = get
## Lowercase only
follow-redirects = False
# headers-file = headers.txt
# user-agent = MyUserAgent
# cookie = SESSIONID=123
[connection]
timeout = 5
delay = 0
scheme = http
maxrate = 0
retries = 2
request-by-hostname = False
exit-on-error = False
# proxy = localhost:8080
# proxy-list = proxies.txt
# replay-proxy = localhost:8000
Источник содержания статьи: Файл README.md в установочном пакете dirsearch переведен на английский язык. Если у вас есть вопросы или ошибки, поправьте меня. Спасибо.
Заявление об авторских правах: Содержание этой статьи добровольно предоставлено пользователями Интернета, а мнения, выраженные в этой статье, представляют собой только точку зрения автора. Данный сайт лишь предоставляет услуги по хранению информации, не имеет никаких прав собственности и не несет соответствующей юридической ответственности. Если вы обнаружите на этом сайте какое-либо подозрительное нарушение авторских прав/незаконный контент, отправьте электронное письмо, чтобы сообщить. После проверки этот сайт будет немедленно удален.
Издатель: Full stack программист и руководитель стека, укажите источник для перепечатки: https://javaforall.cn/185438.html Исходная ссылка: https://javaforall.cn