
Фреймворк нового поколения для сканирования и обхода веб-сайтов.
Возможности • Установка • Использование • Область • Настройка • Фильтры • Присоединиться к Discord

Для установки katana требуется Go 1.26+. Если возникнут проблемы с установкой, рекомендуем попробовать установить с последней доступной версией Go, так как минимальная требуемая версия могла измениться. Выполните команду ниже или скачайте предварительно скомпилированный бинарный файл со страницы релизов.```console CGO_ENABLED=1 go install github.com/projectdiscovery/katana/cmd/katana@latest
**Дополнительные параметры установки / запуска katana-**
<details>
<summary>Docker</summary>
> Чтобы установить / обновить docker до последнего тега -```sh
docker pull projectdiscovery/katana:latest
Запуск katana в стандартном режиме с использованием docker -```sh docker run projectdiscovery/katana:latest -u https://tesla.com
> Чтобы запустить katana в безголовом режиме с помощью docker -```sh
docker run projectdiscovery/katana:latest -u https://tesla.com -system-chrome -headless
Рекомендуется установить следующие предварительные требования -```sh sudo apt update sudo apt install zip curl wget git snapd sudo snap refresh sudo snap install golang --classic
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://dl.google.com/linux/linux_signing_key.pub
| sudo gpg --dearmor -o /etc/apt/keyrings/google-chrome.gpg
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/google-chrome.gpg]
http://dl.google.com/linux/chrome/deb/ stable main"
| sudo tee /etc/apt/sources.list.d/google-chrome.list > /dev/null
sudo apt update sudo apt install google-chrome-stable
> install katana -```sh
go install github.com/projectdiscovery/katana/cmd/katana@latest
katana -h
Это отобразит справку по инструменту. Вот все переключатели, которые он поддерживает.```console
Katana is a fast crawler focused on execution in automation
pipelines offering both headless and non-headless crawling.
Usage:
./katana [flags]
Flags:
INPUT:
-u, -list string[] target url / list to crawl
-resume string resume scan using resume.cfg
-e, -exclude string[] exclude host matching specified filter ('cdn', 'private-ips', cidr, ip, regex)
CONFIGURATION:
-r, -resolvers string[] list of custom resolver (file or comma separated)
-d, -depth int maximum depth to crawl (default 3)
-jc, -js-crawl enable endpoint parsing / crawling in javascript file
-jsl, -jsluice enable jsluice parsing in javascript file (memory intensive)
-ct, -crawl-duration value maximum duration to crawl the target for (s, m, h, d) (default s)
-kf, -known-files string enable crawling of known files (all,robotstxt,sitemapxml), a minimum depth of 3 is required to ensure all known files are properly crawled.
-mrs, -max-response-size int maximum response size to read (default 4194304)
-timeout int time to wait for request in seconds (default 10)
-aff, -automatic-form-fill enable automatic form filling (experimental)
-fx, -form-extraction extract form, input, textarea & select elements in jsonl output
-retry int number of times to retry the request (default 1)
-proxy string http/socks5 proxy to use
-td, -tech-detect enable technology detection
-H, -headers string[] custom header/cookie to include in all http request in header:value format (file)
-config string path to the katana configuration file
-fc, -form-config string path to custom form configuration file
-flc, -field-config string path to custom field configuration file
-s, -strategy string Visit strategy (depth-first, breadth-first) (default "depth-first")
-iqp, -ignore-query-params Ignore crawling same path with different query-param values
-fsu, -filter-similar filter crawling of similar looking URLs (e.g., /users/123 and /users/456)
-fst, -filter-similar-threshold int number of distinct values before a path position is treated as parameter (default 10)
-tlsi, -tls-impersonate enable experimental client hello (ja3) tls randomization
-dr, -disable-redirects disable following redirects (default false)
-kb, -knowledge-base enable knowledge base classification
-kb-secrets enable secrets extractor in the knowledge base
-kb-validate-secrets validate detected secrets against their provider (sends live API calls)
-kb-endpoints enable endpoints extractor (classifies REST/GraphQL/SOAP/XHR requests)
-mdp, -max-domain-pages int maximum number of pages to crawl per domain (default unlimited)
DEBUG:
-health-check, -hc run diagnostic check up
-elog, -error-log string file to write sent requests error log
-pprof-server enable pprof server
HEADLESS:
-hl, -headless enable headless hybrid crawling (experimental)
-sc, -system-chrome use local installed chrome browser instead of katana installed
-sb, -show-browser show the browser on the screen with headless mode
-ho, -headless-options string[] start headless chrome with additional options
-nos, -no-sandbox start headless chrome in --no-sandbox mode
-cdd, -chrome-data-dir string path to store chrome browser data
-scp, -system-chrome-path string use specified chrome browser for headless crawling
-noi, -no-incognito start headless chrome without incognito mode
-cwu, -chrome-ws-url string use chrome browser instance launched elsewhere with the debugger listening at this URL
-xhr, -xhr-extraction extract xhr request url,method in jsonl output
-pls, -page-load-strategy string page load strategy (heuristic, load, domcontentloaded, networkidle, none) (default "heuristic")
-dwt, -dom-wait-time int time in seconds to wait after page load when using domcontentloaded strategy (default 5)
-csp, -captcha-solver-provider string captcha solver provider (e.g. capsolver)
-csk, -captcha-solver-key string captcha solver provider api key
SCOPE:
-cs, -crawl-scope string[] in scope url regex to be followed by crawler
-cos, -crawl-out-scope string[] out of scope url regex to be excluded by crawler
-fs, -field-scope string pre-defined scope field (dn,rdn,fqdn) or custom regex (e.g., '(company-staging.io|company.com)') (default "rdn")
-ns, -no-scope disables host based default scope
-do, -display-out-scope display external endpoint from scoped crawling
FILTER:
-mr, -match-regex string[] regex or list of regex to match on output url (cli, file)
-fr, -filter-regex string[] regex or list of regex to filter on output url (cli, file)
-f, -field string field to display in output (url,path,fqdn,rdn,rurl,qurl,qpath,file,ufile,key,value,kv,dir,udir) (Deprecated: use -output-template instead)
-sf, -store-field string field to store in per-host output (url,path,fqdn,rdn,rurl,qurl,qpath,file,ufile,key,value,kv,dir,udir)
-em, -extension-match string[] match output for given extension (eg, -em php,html,js,none)
-ef, -extension-filter string[] filter output for given extension (eg, -ef png,css)
-ndef, -no-default-ext-filter bool remove default extensions from the filter list
-mdc, -match-condition string match response with dsl based condition
-fdc, -filter-condition string filter response with dsl based condition
-duf, -disable-unique-filter disable duplicate content filtering
-filter-page-type string[] filter response with page type (e.g. error,captcha,parked)
RATE-LIMIT:
-c, -concurrency int number of concurrent fetchers to use (default 10)
-p, -parallelism int number of concurrent inputs to process (default 10)
-rd, -delay int request delay between each request in seconds
-rl, -rate-limit int maximum requests to send per second (default 150)
-rlm, -rate-limit-minute int maximum number of requests to send per minute
-hrl, -host-rate-limit int maximum requests to send per second per host
-hrlm, -host-rate-limit-minute int maximum number of requests to send per minute per host
UPDATE:
-up, -update update katana to latest version
-duc, -disable-update-check disable automatic katana update check
OUTPUT:
-o, -output string file to write output to
-output-template string custom output template
-sr, -store-response store http requests/responses
-srd, -store-response-dir string store http requests/responses to custom directory
-ncb, -no-clobber do not overwrite output file
-sfd, -store-field-dir string store per-host field to custom directory
-or, -omit-raw omit raw requests/responses from jsonl output
-ob, -omit-body omit response body from jsonl output
-lof, -list-output-fields list available fields for jsonl output format
-eof, -exclude-output-fields exclude fields from jsonl output
-j, -jsonl write output in jsonl format
-nc, -no-color disable output content coloring (ANSI escape codes)
-silent display output only
-v, -verbose display verbose output
-debug display debug output
-version display project version
katana требует url или endpoint для обхода и принимает один или несколько входов.
URL ввода можно указать с помощью опции -u, несколько значений можно указать через запятую, также поддерживается ввод из файла с помощью опции -list и дополнительно конвейерный ввод (stdin).
katana -u https://tesla.com
#### Множественный ввод URL (через запятую)```sh
katana -u https://tesla.com,https://google.com
$ cat url_list.txt
https://tesla.com https://google.com
ВВОД:```
katana -list url_list.txt
echo https://tesla.com | katana
-h, --help показать это справочное сообщение и выйти
-se SESSION, --session SESSION
возобновить прерванный сеанс, используя ранее
сгенерированные файлы сеанса. (по умолчанию: None)
-m {kerberos,azuread}, --method {kerberos,azuread}
выбрать метод аутентификации: kerberos или azuread
(по умолчанию: kerberos)
-dc HOST, --domain-controller HOST
IP-адрес или FQDN контроллера домена. Если
не указан, будет получен через DNS.
-b, --benchmark тестирование модулей перебора для выбора наиболее
эффективной стратегии перед началом атаки
(по умолчанию: False)
-p, --passwords только взлом паролей с выводом в stdout (полезно при
использовании --no-save совместно с пользовательской
техникой взлома паролей, например hashcat)
mode:
Режимы выполнения
--shred SHRED Уничтожить ранее созданный файл .clemps (удаляет его)
--restore RESTORE Восстановить файл .clemps из его фрагментов (по умолчанию
билеты Kerberos уничтожаются вместо удаления)
--export EXPORT Экспортировать все хеши из NTDS.dit в файл для hashcat
output options:
Параметры управления выводом
--export-xlsx EXPORT_XLSX
экспортировать результаты в файл Excel
--export-sqlite EXPORT_SQLITE
экспортировать результаты в файл базы данных SQLite3
--no-save не сохранять результаты на диск
kerberos:
Параметры аутентификации Kerberos
-u USERNAME, --username USERNAME
имя пользователя для аутентификации Kerberos
-d DOMAIN, --domain DOMAIN
имя домена для аутентификации Kerberos
-k, --ticket аутентифицироваться с помощью билета Kerberos, выбранного из
файла ccache
-cc CCFILE, --ccache CCFILE
файл ccache для аутентификации Kerberos
-H, --hashes аутентифицироваться с использованием хешей
-nh, --no-hash не запрашивать NT-хеш целевого пользователя (полезно в режиме
только kerberoasting)
--aes AES ключ AES для аутентификации Kerberos (шестнадцатеричная строка)```sh
cat domains | httpx | katana
Пример запуска katana -```console katana -u https://youtube.com
/ /_____ / /___ ____ ___ _ / '/ _ / __/ _ / _ / _ / //_\,/_/_,////_,_/ v0.0.1
projectdiscovery.io
[WRN] Use with caution. You are responsible for your actions. [WRN] Developers assume no liability and are not responsible for any misuse or damage. https://www.youtube.com/ https://www.youtube.com/about/ https://www.youtube.com/about/press/ https://www.youtube.com/about/copyright/ https://www.youtube.com/t/contact_us/ https://www.youtube.com/creators/ https://www.youtube.com/ads/ https://www.youtube.com/t/terms https://www.youtube.com/t/privacy https://www.youtube.com/about/policies/ https://www.youtube.com/howyoutubeworks?utm_campaign=ytgen&utm_source=ythp&utm_medium=LeftNav&utm_content=txt&u=https%3A%2F%2Fwww.youtube.com%2Fhowyoutubeworks%3Futm_source%3Dythp%26utm_medium%3DLeftNav%26utm_campaign%3Dytgen https://www.youtube.com/new https://m.youtube.com/ https://www.youtube.com/s/desktop/4965577f/jsbin/desktop_polymer.vflset/desktop_polymer.js https://www.youtube.com/s/desktop/4965577f/cssbin/www-main-desktop-home-page-skeleton.css https://www.youtube.com/s/desktop/4965577f/cssbin/www-onepick.css https://www.youtube.com/s/_/ytmainappweb/_/ss/k=ytmainappweb.kevlar_base.0Zo5FUcPkCg.L.B1.O/am=gAE/d=0/rs=AGKMywG5nh5Qp-BGPbOaI1evhF5BVGRZGA https://www.youtube.com/opensearch?locale=en_GB
## Режим сканирования
### Стандартный режим
Стандартный режим сканирования использует под капотом стандартную библиотеку go http для обработки HTTP-запросов/ответов. Этот режим работает гораздо быстрее, так как не имеет накладных расходов браузера. Тем не менее, он анализирует тело HTTP-ответа как есть, без какого-либо JavaScript или рендеринга DOM, потенциально пропуская конечные точки, появляющиеся после рендеринга DOM, или асинхронные вызовы конечных точек, которые могут происходить в сложных веб-приложениях, зависящих, например, от специфических для браузера событий.
### Headless-режим
Headless-режим перехватывает внутренние вызовы headless для обработки HTTP-запросов/ответов непосредственно в контексте браузера. Это дает два преимущества:
- HTTP-отпечаток (TLS и user agent) полностью идентифицирует клиента как легитимный браузер
- Лучшее покрытие, поскольку конечные точки обнаруживаются при анализе как стандартного необработанного ответа, как в предыдущем режиме, так и ответа, отрендеренного браузером с включенным JavaScript.
Headless-сканирование является опциональным и может быть включено с помощью опции `-headless`.
Вот другие CLI-опции headless -```console
katana -h headless
Flags:
HEADLESS:
-hl, -headless enable headless hybrid crawling (experimental)
-sc, -system-chrome use local installed chrome browser instead of katana installed
-sb, -show-browser show the browser on the screen with headless mode
-ho, -headless-options string[] start headless chrome with additional options
-nos, -no-sandbox start headless chrome in --no-sandbox mode
-cdd, -chrome-data-dir string path to store chrome browser data
-scp, -system-chrome-path string use specified chrome browser for headless crawling
-noi, -no-incognito start headless chrome without incognito mode
-cwu, -chrome-ws-url string use chrome browser instance launched elsewhere with the debugger listening at this URL
-xhr, -xhr-extraction extract xhr requests
-pls, -page-load-strategy string page load strategy (heuristic, load, domcontentloaded, networkidle, none) (default "heuristic")
-dwt, -dom-wait-time int time in seconds to wait after page load when using domcontentloaded strategy (default 5)
-csp, -captcha-solver-provider string captcha solver provider (e.g. capsolver)
-csk, -captcha-solver-key string captcha solver provider api key
-no-sandboxЗапускает безголовый браузер Chrome с опцией no-sandbox, полезно при запуске от пользователя root.```console katana -u https://tesla.com -headless -no-sandbox
*`-no-incognito`*
----
Запускает headless-браузер Chrome без режима инкогнито, полезно при использовании локального браузера.```console
katana -u https://tesla.com -headless -no-incognito
Чтобы сохранить файлы cookie и другие данные сессии браузера между запусками, комбинируйте -no-incognito с -chrome-data-dir, чтобы Katana повторно использовала выбранный каталог профиля Chrome вместо временного изолированного.```console
katana -u https://tesla.com -headless -no-incognito -chrome-data-dir /tmp/katana-profile
*`-headless-options`*
----
При сканировании в безголовом режиме можно указать дополнительные параметры Chrome с помощью `-headless-options`, например -```console
katana -u https://tesla.com -headless -system-chrome -headless-options --disable-gpu,proxy-server=http://127.0.0.1:8080
-page-load-strategyУправляет тем, как katana ожидает загрузки страниц в безголовом режиме. Различные стратегии полезны для разных типов веб-приложений:
Стратегия `domcontentloaded` особенно полезна для одностраничных приложений (SPA), которые никогда полностью не завершают загрузку из-за непрерывных фоновых запросов (websockets, polling и т.д.).
*`-dom-wait-time`*
----
При использовании стратегии загрузки страницы `domcontentloaded` эта опция определяет, сколько секунд ждать после события DOMContentLoaded. Это дает время JavaScript для рендеринга интерактивных элементов. Значение по умолчанию — 5 секунд.```console
katana -u https://tesla.com -headless -pls domcontentloaded -dwt 10
Katana поддерживает автоматическое обнаружение и решение капчи при headless-сканировании. При обнаружении страницы с капчей katana определяет провайдера капчи, решает её через внешний сервис и продолжает сканирование.
Поддерживаемые типы капчи: reCAPTCHA v2, reCAPTCHA v3, reCAPTCHA Enterprise, Cloudflare Turnstile, hCaptcha
-captcha-solver-providerОпция для указания провайдера решения капчи. В настоящее время поддерживается: capsolver.
-captcha-solver-keyAPI-ключ для провайдера решения капчи.```console katana -u https://example.com -headless -csp capsolver -csk YOUR_API_KEY
Провайдер и ключ также можно задать через переменные окружения:```console
export CAPTCHA_SOLVER_PROVIDER=capsolver
export CAPTCHA_SOLVER_KEY=YOUR_API_KEY
katana -u https://example.com -headless
Сканирование может быть бесконечным, если не определить область, поэтому katana предоставляет множество возможностей для задания области сканирования.
-field-scopeНаиболее удобная опция для определения области с помощью предопределённого имени поля; rdn является опцией по умолчанию для области поля.
rdn - сканирование ограничено корневым доменным именем и всеми поддоменами (например, *example.com) (по умолчанию)fqdn - сканирование ограничено указанным поддоменом (например, www.example.com или api.example.com)dn - сканирование ограничено ключевому слову доменного имени (например, example)```console
katana -u https://tesla.com -fs dn*`-crawl-scope`*
------
Для продвинутого контроля области видимости можно использовать опцию `-cs`, которая поддерживает **regex**.```console
katana -u https://tesla.com -cs login
Для нескольких правил в области видимости можно передавать файловый ввод с многострочной строкой / regex.```bash $ cat in_scope.txt
login/ admin/ app/ wordpress/
``````console
katana -u https://tesla.com -cs in_scope.txt
-crawl-out-scopeДля определения того, что не нужно обходить, может использоваться опция -cos, которая также поддерживает ввод regex.```console
katana -u https://tesla.com -cos logout
Для множества правил, выходящих за область действия, можно передать файловый ввод с многострочной строкой / регулярным выражением.```bash
$ cat out_of_scope.txt
/logout
/log_out
*`-no-scope`*
----
Katana по умолчанию ограничивает область сканирования `*.domain`. Чтобы отключить это, можно использовать опцию `-ns`; она также позволяет сканировать интернет.```console
katana -u https://tesla.com -ns
-display-out-scopeПо умолчанию, при использовании опции scope, она также применяется к ссылкам, отображаемым в выводе, поэтому внешние URL-адреса по умолчанию исключаются. Чтобы переопределить это поведение, можно использовать опцию -do, чтобы отобразить все внешние URL-адреса, существующие в URL/Endpoint целей в рамках scope.```
katana -u https://tesla.com -do
Вот все параметры командной строки для управления областью -```console
katana -h scope
Flags:
SCOPE:
-cs, -crawl-scope string[] in scope url regex to be followed by crawler
-cos, -crawl-out-scope string[] out of scope url regex to be excluded by crawler
-fs, -field-scope string pre-defined scope field (dn,rdn,fqdn) (default "rdn")
-ns, -no-scope disables host based default scope
-do, -display-out-scope display external endpoint from scoped crawling
Katana предоставляет несколько опций для настройки и управления сканированием по нашему желанию.
-depthОпция для определения depth (глубины) следования по URL-адресам для сканирования: чем больше глубина, тем больше число конечных точек сканируется + время для сканирования.```
katana -u https://tesla.com -d 5
*`-js-crawl`*
----
Опция для включения разбора JavaScript-файлов и обхода конечных точек, обнаруженных в JavaScript-файлах, отключена по умолчанию.```
katana -u https://tesla.com -jc
-crawl-durationОпция для задания предопределенной продолжительности обхода, отключена по умолчанию.``` katana -u https://tesla.com -ct 2
*`-known-files`*
----
Опция для включения сканирования файлов `robots.txt` и `sitemap.xml`, отключена по умолчанию.```
katana -u https://tesla.com -kf robotstxt,sitemapxml
-automatic-form-fillОпция для включения автоматического заполнения форм для известных / неизвестных полей. Значения известных полей можно настраивать по необходимости, обновляя файл конфигурации форм по пути $HOME/.config/katana/form-config.yaml.
Автоматическое заполнение форм — экспериментальная функция.``` katana -u https://tesla.com -aff
Значения конфигурации форм поддерживают вспомогательные функции DSL для генерации динамических данных. Все функции `rand_*` из библиотеки [projectdiscovery/dsl](https://github.com/projectdiscovery/dsl) доступны:```yaml
# $HOME/.config/katana/form-config.yaml
email: "rand_email()"
phone: "rand_phone()"
placeholder: "rand_first_name()"
password: 'rand_base(16, "")'
color: "#e66465"
-filter-similarОпция для фильтрации обхода похожих URL-адресов путем нормализации динамических сегментов пути. Это выявляет идентификаторы, UUID, хеши, даты и другие динамические значения, а также изучает повторяющиеся шаблоны во время выполнения. Например, /users/123 и /users/456 считаются одной и той же конечной точкой.```
katana -u https://tesla.com -fsu
Порог продвижения (сколько различных значений в позиции пути, прежде чем оно будет рассматриваться как параметр) можно настроить с помощью `-fst`. Меньшие значения более агрессивны (меньше URL-адресов сканируется), большие значения более снисходительны. По умолчанию — `10`.```
katana -u https://tesla.com -fsu -fst 5
-max-domain-pagesОпция для ограничения количества страниц, сканируемых на один домен. Предотвращает ситуацию, когда отдельный домен расходует весь бюджет сканирования, полезно для крупных сайтов или защиты от ловушек сканера.``` katana -u https://tesla.com -mdp 100
## Классификация базы знаний
Katana может обогащать результаты сканирования с помощью **базы знаний** — классификации каждой просканированной страницы на основе машинного обучения, работающей на базе [dit](https://github.com/HappyHackingSpace/dit). При включении этой функции каждый ответ классифицируется по **типу страницы** (например, `login`, `error`, `captcha`, `parked`), а любые формы на странице идентифицируются, и результат прикрепляется к полю `knowledgebase` вывода JSONL. Это работает во всех **движках** (стандартном и headless).
> **Примечание**: Модель классификации **автоматически загружается** при первом использовании в `~/.dit/model.json` (с [Hugging Face](https://huggingface.co/datasets/happyhackingspace/dit)). Это одноразовая операция на каждую машину — последующие запуски используют кэшированную модель. Ручная установка `dit` не требуется.
*`-knowledge-base`*
----
Включить классификацию базы знаний. Классификация типа страницы и форм добавляется в поле `knowledgebase` каждого результата.```console
katana -u https://example.com -kb -jsonl
sudo apt update
sudo apt install -y nmap masscan
sudo apt install -y python3 python3-pip git
С использованием Homebrew:
brew install nmap masscan python git
С использованием DNF:
sudo dnf install -y nmap masscan python3 python3-pip git
Для установки из исходников используйте:
git clone https://github.com/example/repo.git
cd repo
pip3 install -r requirements.txt
python3 setup.py install
``````json
{
"timestamp": "...",
"request": { "...": "..." },
"response": {
"...": "...",
"knowledgebase": {
"PageType": "login",
"Forms": [{ "type": "login", "fields": { "username": "username or email", "password": "password" } }]
}
}
}
-filter-page-typeФильтровать результаты только по заданному(ым) типу(ам) страницы. Включение этого подразумевает -kb (классификатор инициализируется автоматически).```console
katana -u https://example.com -fpt login,error
*`-kb-secrets`*
----
Включите извлечение секретов в базе знаний, отображая обнаруженные секреты (ключи API, токены и т.д.) в ключе `secrets`. Добавьте `-kb-validate-secrets` для проверки обнаруженных секретов у их провайдера — обратите внимание, это **отправляет живые вызовы API**.```console
katana -u https://example.com -kb-secrets
-kb-endpointsВключает извлекатель конечных точек, который классифицирует запросы как REST, GraphQL, SOAP или XHR под ключом endpoints.```console
katana -u https://example.com -kb-endpoints
## Аутентифицированное сканирование
Аутентифицированное сканирование включает добавление пользовательских заголовков или куки-файлов в HTTP-запросы для доступа к защищённым ресурсам. Эти заголовки предоставляют информацию для аутентификации или авторизации, что позволяет сканировать аутентифицированный контент/конечные точки. Вы можете указать заголовки напрямую в командной строке или передать их в виде файла для katana, чтобы выполнить аутентифицированное сканирование.
> **Примечание**: Пользователь должен вручную выполнить аутентификацию и экспортировать сессионный куки/заголовок в файл для использования с katana.
*`-headers`*
----
Опция для добавления пользовательского заголовка или куки в запрос.
> Синтаксис [заголовков](https://datatracker.ietf.org/doc/html/rfc7230#section-3.2) в спецификации HTTP
Вот пример добавления куки в запрос:```
katana -u https://tesla.com -H 'Cookie: usrsess=AmljNrESo'
Также можно передавать заголовки или куки в виде файла. Например:``` $ cat cookie.txt
Cookie: PHPSESSIONID=XXXXXXXXX X-API-KEY: XXXXX TOKEN=XX
Пожалуйста, предоставьте содержимое Markdown для перевода.```
katana -u https://tesla.com -H cookie.txt
При необходимости есть больше опций для настройки, вот все опции CLI, связанные с конфигурацией -```console katana -h config
Flags: CONFIGURATION: -r, -resolvers string[] list of custom resolver (file or comma separated) -d, -depth int maximum depth to crawl (default 3) -jc, -js-crawl enable endpoint parsing / crawling in javascript file -ct, -crawl-duration int maximum duration to crawl the target for -kf, -known-files string enable crawling of known files (all,robotstxt,sitemapxml) -mrs, -max-response-size int maximum response size to read (default 9223372036854775807) -timeout int time to wait for request in seconds (default 10) -aff, -automatic-form-fill enable automatic form filling (experimental) -fx, -form-extraction enable extraction of form, input, textarea & select elements -retry int number of times to retry the request (default 1) -proxy string http/socks5 proxy to use -H, -headers string[] custom header/cookie to include in request -config string path to the katana configuration file -fc, -form-config string path to custom form configuration file -flc, -field-config string path to custom field configuration file -s, -strategy string Visit strategy (depth-first, breadth-first) (default "depth-first") -iqp, -ignore-query-params Ignore crawling same path with different query-param values -fsu, -filter-similar filter crawling of similar looking URLs (e.g., /users/123 and /users/456) -fst, -filter-similar-threshold int number of distinct values before a path position is treated as parameter (default 10) -mdp, -max-domain-pages int maximum number of pages to crawl per domain (default unlimited)
### Подключение к активному сеансу браузера
Katana также может подключаться к активному сеансу браузера, в котором пользователь уже вошел в систему и прошёл аутентификацию, и использовать его для сканирования. Единственное требование для этого — запустить браузер с включённой удалённой отладкой.
Вот пример запуска браузера Chrome с включённой удалённой отладкой и его использования с katana -
**шаг 1) Сначала определите путь к исполняемому файлу chrome**
| Операционная система | Расположение исполняемого файла Chromium | Расположение исполняемого файла Google Chrome |
|----------------------|------------------------------------------|-----------------------------------------------|
| Windows (64-битная) | `C:\Program Files (x86)\Google\Chromium\Application\chrome.exe` | `C:\Program Files (x86)\Google\Chrome\Application\chrome.exe` |
| Windows (32-битная) | `C:\Program Files\Google\Chromium\Application\chrome.exe` | `C:\Program Files\Google\Chrome\Application\chrome.exe` |
| macOS | `/Applications/Chromium.app/Contents/MacOS/Chromium` | `/Applications/Google Chrome.app/Contents/MacOS/Google Chrome` |
| Linux | `/usr/bin/chromium` | `/usr/bin/google-chrome` |
**шаг 2) Запустите chrome с включённой удалённой отладкой — он вернёт websocket-URL. Например, на macOS вы можете запустить chrome с включённой удалённой отладкой с помощью следующей команды** -
chrome --remote-debugging-port=9222
После запуска chrome вы можете использовать этот websocket-URL с katana с помощью опции `-headless` или `-active`:
katana -headless -proxy http://127.0.0.1:9222```console
$ /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
DevTools listening on ws://127.0.0.1:9222/devtools/browser/c5316c9c-19d6-42dc-847a-41d1aeebf7d6
Теперь войдите на сайт, который хотите просканировать, и оставьте браузер открытым.
шаг 3) Теперь используйте URL веб-сокета с katana, чтобы подключиться к активному сеансу браузера и просканировать сайт```console katana -headless -u https://tesla.com -cwu ws://127.0.0.1:9222/devtools/browser/c5316c9c-19d6-42dc-847a-41d1aeebf7d6 -no-incognito
> **Примечание**: вы можете использовать опцию `-cdd`, чтобы указать пользовательский каталог данных Chrome для хранения данных браузера и куки-файлов, но это не сохраняет данные сессии, если куки-файл установлен только на `Session` или истекает через определенное время.
## Фильтры
*`-field`*
----
> [!WARNING]
> Устарело: используйте [**`-output-template`**](#-output-template) вместо этого. Флаг field по-прежнему поддерживается для обратной совместимости.
Katana поставляется со встроенными полями, которые можно использовать для фильтрации вывода по желаемой информации. Опцию `-f` можно использовать для указания любого из доступных полей.```
-f, -field string field to display in output (url,path,fqdn,rdn,rurl,qurl,qpath,file,key,value,kv,dir,udir)
Вот таблица с примерами каждого поля и ожидаемый вывод при использовании:
Вот пример использования опции поля для отображения только всех URL с параметром запроса:``` katana -u https://tesla.com -f qurl -silent
https://shop.tesla.com/en_au?redirect=no https://shop.tesla.com/en_nz?redirect=no https://shop.tesla.com/product/men_s-raven-lightweight-zip-up-bomber-jacket?sku=1740250-00-A https://shop.tesla.com/product/tesla-shop-gift-card?sku=1767247-00-A https://shop.tesla.com/product/men_s-chill-crew-neck-sweatshirt?sku=1740176-00-A https://www.tesla.com/about?redirect=no https://www.tesla.com/about/legal?redirect=no https://www.tesla.com/findus/list?redirect=no
### Пользовательские поля
Вы можете создавать пользовательские поля для извлечения и хранения определённой информации из ответов страниц с помощью правил регулярных выражений. Эти пользовательские поля определяются с помощью YAML-файла конфигурации и загружаются из расположения по умолчанию `$HOME/.config/katana/field-config.yaml`. В качестве альтернативы вы можете использовать параметр `-flc` для загрузки файла конфигурации пользовательских полей из другого расположения.
Вот пример пользовательского поля.```yaml
- name: email
type: regex
regex:
- '([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)'
- '([a-zA-Z0-9+._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)'
- name: phone
type: regex
regex:
- '\d{3}-\d{8}|\d{4}-\d{7}'
При определении пользовательских полей поддерживаются следующие атрибуты:
Значение атрибута name используется как значение опции
-fieldв cli.
Тип пользовательского атрибута, в настоящее время поддерживается -
regex
Часть ответа, из которой извлекается информация. Значение по умолчанию —
response, которое включает как заголовок, так и тело. Другие возможные значения:headerиbody.
Вы можете использовать этот атрибут для выбора конкретной сопоставленной группы в регулярном выражении, например:
group: 1
katana -u https://tesla.com -f email,phone
*`-store-field`*
---
В дополнение к опции `field`, которая позволяет фильтровать вывод во время выполнения, существует опция `-sf, -store-fields`, которая работает точно так же, как опция field, за исключением того, что вместо фильтрации она сохраняет всю информацию на диск в каталог `katana_field`, отсортированную по URL-адресу цели. Используйте `-sfd` или `-store-field-dir`, чтобы указать другое местоположение для хранения данных.```
katana -u https://tesla.com -sf key,fqdn,qurl -silent
I notice that no content was provided after "INPUT:" in your message. I cannot translate something that isn't there. Please supply the actual Markdown content you need translated.```bash $ ls katana_field/
https_www.tesla.com_fqdn.txt https_www.tesla.com_key.txt https_www.tesla.com_qurl.txt
Опция `-store-field` может быть полезна для сбора информации с целью создания целенаправленного списка слов для различных целей, включая, но не ограничиваясь:
- Определение наиболее часто используемых параметров
- Обнаружение часто используемых путей
- Поиск часто используемых файлов
- Выявление связанных или неизвестных поддоменов
### Katana Filters
*`-extension-match`*
---
Результаты сканирования могут быть легко отфильтрованы по конкретному расширению с помощью опции `-em`, чтобы отображать только вывод, содержащий заданное расширение.```
katana -u https://tesla.com -silent -em js,jsp,json
Используйте специальное значение none, чтобы также включать URL-адреса без расширения файла в вывод:```
katana -u https://tesla.com -silent -em js,jsp,json,none
*`-extension-filter`*
---
Результаты сканирования можно легко отфильтровать по конкретному расширению с помощью опции `-ef`, которая обеспечивает удаление всех URL, содержащих заданное расширение.```
katana -u https://tesla.com -silent -ef css,txt,md
-no-default-ext-filterKatana по умолчанию фильтрует несколько расширений. Это можно отключить с помощью опции -ndef.```
katana -u https://tesla.com -silent -ndef
*`-match-regex`*
---
Флаг `-match-regex` или `-mr` позволяет фильтровать выходные URL-адреса с помощью регулярных выражений. При использовании этого флага в выводе будут напечатаны только те URL-адреса, которые соответствуют указанному регулярному выражению.```
katana -u https://tesla.com -mr 'https://shop\.tesla\.com/*' -silent
-filter-regexФлаг -filter-regex или -fr позволяет фильтровать выходные URL-адреса с помощью регулярных выражений. При использовании этого флага будут пропущены URL-адреса, которые соответствуют указанному регулярному выражению.```
katana -u https://tesla.com -fr 'https://www\.tesla\.com/*' -silent
### Расширенная фильтрация
Katana поддерживает выражения на основе DSL для расширенных возможностей сопоставления и фильтрации:
- Чтобы сопоставить конечные точки с кодом состояния 200:```shell
katana -u https://www.hackerone.com -mdc 'status_code == 200'
- Для сопоставления конечных точек с технологиями PHP:```shell
katana -u https://www.hackerone.com -mdc 'contains(to_lower(technologies), "php")'
Функции DSL могут быть применены к любым ключам в выводе jsonl. Для получения дополнительной информации о доступных функциях DSL посетите [dsl project](https://github.com/projectdiscovery/dsl).
Вот дополнительные параметры фильтрации -```console
katana -h filter
Flags:
FILTER:
-mr, -match-regex string[] regex or list of regex to match on output url (cli, file)
-fr, -filter-regex string[] regex or list of regex to filter on output url (cli, file)
-f, -field string field to display in output (url,path,fqdn,rdn,rurl,qurl,qpath,file,ufile,key,value,kv,dir,udir)
-sf, -store-field string field to store in per-host output (url,path,fqdn,rdn,rurl,qurl,qpath,file,ufile,key,value,kv,dir,udir)
-em, -extension-match string[] match output for given extension (eg, -em php,html,js,none)
-ef, -extension-filter string[] filter output for given extension (eg, -ef png,css)
-ndef, -no-default-ext-filter bool remove default extensions from the filter list
-mdc, -match-condition string match response with dsl based condition
-fdc, -filter-condition string filter response with dsl based condition
-duf, -disable-unique-filter disable duplicate content filtering
При сканировании легко получить блокировку или бан, если не соблюдать лимиты целевых сайтов. Katana предоставляет несколько опций для настройки скорости сканирования: как быстрее, так и медленнее, в зависимости от ваших потребностей.
-delayОпция для введения задержки в секундах между каждым новым запросом, который katana выполняет во время сканирования. По умолчанию отключена.``` katana -u https://tesla.com -delay 20
*`-concurrency`*
-----
опция для управления количеством URL-адресов на цель, загружаемых одновременно.```
katana -u https://tesla.com -c 20
-parallelismопция для указания количества целей, обрабатываемых одновременно из входного списка.``` katana -u https://tesla.com -p 20
*`-rate-limit`*
-----
Максимальное количество запросов в секунду, применяется глобально ко всем хостам.```
katana -u https://tesla.com -rl 100
-rate-limit-minuteМаксимальное количество запросов в минуту, применяется глобально ко всем хостам.``` katana -u https://tesla.com -rlm 500
*`-host-rate-limit`*
-----
Максимальное количество запросов в секунду на хост. Каждый хост получает свой собственный bucket лимита скорости, поэтому медленный хост не будет замедлять быстрые. Заменяет глобальный лимит скорости при установке. Katana также автоматически снижает скорость с экспоненциальной задержкой и джиттером, когда хост возвращает 429 или 503.```console
katana -u https://tesla.com -hrl 50
-host-rate-limit-minuteМаксимальное количество запросов в минуту на хост.```console katana -u https://tesla.com -hrlm 200
Вот все длинные/короткие опции CLI для контроля ограничения скорости -```console
katana -h rate-limit
Flags:
RATE-LIMIT:
-c, -concurrency int number of concurrent fetchers to use (default 10)
-p, -parallelism int number of concurrent inputs to process (default 10)
-rd, -delay int request delay between each request in seconds
-rl, -rate-limit int maximum requests to send per second (default 150)
-rlm, -rate-limit-minute int maximum number of requests to send per minute
-hrl, -host-rate-limit int maximum requests to send per second per host
-hrlm, -host-rate-limit-minute int maximum number of requests to send per minute per host
Katana поддерживает вывод в файл как в формате обычного текста, так и в JSON, который включает дополнительную информацию, такую как название source, tag и attribute для соотнесения обнаруженных конечных точек.
-outputПо умолчанию katana выводит сканированные конечные точки в формате обычного текста. Результаты могут быть записаны в файл с помощью опции -output.```console katana -u https://example.com -no-scope -output example_endpoints.txt
*`-output-template`*
---
Опция `-output-template` позволяет настроить формат вывода с помощью шаблона, обеспечивая гибкость в определении структуры вывода. Эта опция заменяет устаревший флаг `-field` для фильтрации вывода. Вместо использования предопределенных полей вы можете указать собственный шаблон непосредственно в командной строке, чтобы управлять представлением извлеченных данных.
Пример использования опции `-output-template`:```sh
katana -u https://example.com -output-template '{{email}} - {{url}}'
В этом примере email представляет собой настраиваемое поле, которое извлекает и отображает адреса электронной почты, найденные в исходном url.
[!NOTE] Если указанное поле не существует или не содержит значения, оно будет просто опущено в выводе.
Эта опция позволяет эффективно структурировать вывод таким образом, который наилучшим образом соответствует вашему сценарию использования, делая извлечение данных более интуитивным и настраиваемым.
-jsonl
---```console
katana -u https://example.com -jsonl | jq .
Главная [Руководства](#guides) [Инструменты](#tools) [Коллекция](#collection)
## Руководства
- [Случай деаутентификации Wi-Fi](#wi-fi-deauth-case) - Узнайте, как работает атака деаутентификации Wi-Fi
- [DNS-спуфинг](#dns-spoofing) - Настройте атаку подмены DNS за считанные минуты
- [Сбор учётных данных](#credential-harvesting) - Ознакомьтесь с различными методами сбора учётных данных
- [Создание перехватывающего портала](#create-captive-portal) - Настройте перехватывающий портал с помощью одной команды```json
{
"timestamp": "2023-03-20T16:23:58.027559+05:30",
"request": {
"method": "GET",
"endpoint": "https://example.com",
"raw": "GET / HTTP/1.1\r\nHost: example.com\r\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36\r\nAccept-Encoding: gzip\r\n\r\n"
},
"response": {
"status_code": 200,
"headers": {
"accept_ranges": "bytes",
"expires": "Mon, 27 Mar 2023 10:53:58 GMT",
"last_modified": "Thu, 17 Oct 2019 07:18:26 GMT",
"content_type": "text/html; charset=UTF-8",
"server": "ECS (dcb/7EA3)",
"vary": "Accept-Encoding",
"etag": "\"3147526947\"",
"cache_control": "max-age=604800",
"x_cache": "HIT",
"date": "Mon, 20 Mar 2023 10:53:58 GMT",
"age": "331239"
},
"body": "<!doctype html>\n<html>\n<head>\n <title>Example Domain</title>\n\n <meta charset=\"utf-8\" />\n <meta http-equiv=\"Content-type\" content=\"text/html; charset=utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <style type=\"text/css\">\n body {\n background-color: #f0f0f2;\n margin: 0;\n padding: 0;\n font-family: -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", \"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n \n }\n div {\n width: 600px;\n margin: 5em auto;\n padding: 2em;\n background-color: #fdfdff;\n border-radius: 0.5em;\n box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);\n }\n a:link, a:visited {\n color: #38488f;\n text-decoration: none;\n }\n @media (max-width: 700px) {\n div {\n margin: 0 auto;\n width: auto;\n }\n }\n </style> \n</head>\n\n<body>\n<div>\n <h1>Example Domain</h1>\n <p>This domain is for use in illustrative examples in documents. You may use this\n domain in literature without prior coordination or asking for permission.</p>\n <p><a href=\"https://www.iana.org/domains/example\">More information...</a></p>\n</div>\n</body>\n</html>\n",
"technologies": [
"Azure",
"Amazon ECS",
"Amazon Web Services",
"Docker",
"Azure CDN"
],
"raw": "HTTP/1.1 200 OK\r\nContent-Length: 1256\r\nAccept-Ranges: bytes\r\nAge: 331239\r\nCache-Control: max-age=604800\r\nContent-Type: text/html; charset=UTF-8\r\nDate: Mon, 20 Mar 2023 10:53:58 GMT\r\nEtag: \"3147526947\"\r\nExpires: Mon, 27 Mar 2023 10:53:58 GMT\r\nLast-Modified: Thu, 17 Oct 2019 07:18:26 GMT\r\nServer: ECS (dcb/7EA3)\r\nVary: Accept-Encoding\r\nX-Cache: HIT\r\n\r\n<!doctype html>\n<html>\n<head>\n <title>Example Domain</title>\n\n <meta charset=\"utf-8\" />\n <meta http-equiv=\"Content-type\" content=\"text/html; charset=utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <style type=\"text/css\">\n body {\n background-color: #f0f0f2;\n margin: 0;\n padding: 0;\n font-family: -apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", \"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n \n }\n div {\n width: 600px;\n margin: 5em auto;\n padding: 2em;\n background-color: #fdfdff;\n border-radius: 0.5em;\n box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);\n }\n a:link, a:visited {\n color: #38488f;\n text-decoration: none;\n }\n @media (max-width: 700px) {\n div {\n margin: 0 auto;\n width: auto;\n }\n }\n </style> \n</head>\n\n<body>\n<div>\n <h1>Example Domain</h1>\n <p>This domain is for use in illustrative examples in documents. You may use this\n domain in literature without prior coordination or asking for permission.</p>\n <p><a href=\"https://www.iana.org/domains/example\">More information...</a></p>\n</div>\n</body>\n</html>\n"
}
}
-store-responseОпция -store-response позволяет записывать все запросы и ответы обойденных конечных точек в текстовый файл. При использовании этой опции текстовые файлы, содержащие запрос и ответ, будут записаны в каталог katana_response. Если вы хотите указать свой каталог, можете использовать опцию -store-response-dir.```console
katana -u https://example.com -no-scope -store-response
- **HTTP Request Smuggling**: Обнаружение уязвимостей, связанных с контрабандой HTTP-запросов.
- **SSRF**: Тестирование на уязвимости подделки серверных запросов (SSRF).
- **Open Redirect**: Выявление уязвимостей открытого перенаправления.
- **SSTI**: Обнаружение уязвимостей внедрения шаблонов на стороне сервера.
- **Command Injection**: Тестирование на уязвимости внедрения команд.
- **SQL Injection**: Обнаружение уязвимостей SQL-инъекций.
- **NoSQL Injection**: Тестирование на уязвимости NoSQL-инъекций.
- **LDAP Injection**: Обнаружение уязвимостей LDAP-инъекций.
- **XPath Injection**: Тестирование на уязвимости XPath-инъекций.
- **Header Injection**: Обнаружение уязвимостей внедрения заголовков.```bash
$ cat katana_response/index.txt
katana_response/example.com/327c3fda87ce286848a574982ddd0b7c7487f816.txt https://example.com (200 OK)
katana_response/www.iana.org/bfc096e6dd93b993ca8918bf4c08fdc707a70723.txt http://www.iana.org/domains/reserved (200 OK)
Примечание:
-store-response опция не поддерживается в режиме -headless.
-list-output-fieldsФлаг -list-output-fields или -lof отображает все доступные поля, которые можно использовать в формате вывода JSONL. Это полезно для понимания, какие данные доступны при использовании пользовательских шаблонов вывода или при исключении определенных полей.```console
katana -lof
*`-exclude-output-fields`*
----
Флаг `-exclude-output-fields` или `-eof` позволяет исключить определённые поля из вывода JSONL. Это полезно для уменьшения размера вывода или сосредоточения на определённых данных путём удаления ненужных полей.```console
katana -u https://example.com -jsonl -eof raw,body
Вот дополнительные параметры командной строки, относящиеся к выводу -```console katana -h output
OUTPUT: -o, -output string file to write output to -sr, -store-response store http requests/responses -srd, -store-response-dir string store http requests/responses to custom directory -lof, -list-output-fields list available fields for jsonl output format -eof, -exclude-output-fields exclude fields from jsonl output -j, -json write output in JSON Lines format -nc, -no-color disable output content coloring (ANSI escape codes) -silent display output only -v, -verbose display verbose output -version display project version
## Katana как библиотека
`katana` можно использовать как библиотеку, создав экземпляр структуры `Option` и заполнив его теми же опциями, которые указываются через CLI. С помощью опций вы можете создать `crawlerOptions` и, соответственно, стандартный или гибридный `crawler`.
Метод `crawler.Crawl` должен быть вызван для обхода входных данных.```go
package main
import (
"math"
"github.com/projectdiscovery/gologger"
"github.com/projectdiscovery/katana/pkg/engine/standard"
"github.com/projectdiscovery/katana/pkg/output"
"github.com/projectdiscovery/katana/pkg/types"
)
func main() {
options := &types.Options{
MaxDepth: 3, // Maximum depth to crawl
FieldScope: "rdn", // Crawling Scope Field
BodyReadSize: math.MaxInt, // Maximum response size to read
Timeout: 10, // Timeout is the time to wait for request in seconds
Concurrency: 10, // Concurrency is the number of concurrent crawling goroutines
Parallelism: 10, // Parallelism is the number of urls processing goroutines
Delay: 0, // Delay is the delay between each crawl requests in seconds
RateLimit: 150, // Maximum requests to send per second
Strategy: "depth-first", // Visit strategy (depth-first, breadth-first)
OnResult: func(result output.Result) { // Callback function to execute for result
gologger.Info().Msg(result.Request.URL)
},
}
crawlerOptions, err := types.NewCrawlerOptions(options)
if err != nil {
gologger.Fatal().Msg(err.Error())
}
defer crawlerOptions.Close()
crawler, err := standard.New(crawlerOptions)
if err != nil {
gologger.Fatal().Msg(err.Error())
}
defer crawler.Close()
var input = "https://www.hackerone.com"
err = crawler.Crawl(input)
if err != nil {
gologger.Warning().Msgf("Could not crawl %s: %s", input, err.Error())
}
}
Для поддержки отслеживания проблем и повышения эффективности сортировки:
Все сообщения начинаются как GitHub Discussions
Почему сначала обсуждения?
Мейнтейнеры будут преобразовывать обсуждения в проблемы по мере необходимости после соответствующего рассмотрения.
katana создан с ❤️ командой projectdiscovery и распространяется по лицензии MIT.
| Стратегия | Описание |
|---|
heuristic | (по умолчанию) Интеллектуальное ожидание, адаптирующееся к поведению страницы — ожидание загрузки, бездействия сети и стабильности DOM |
load | Ожидает только события загрузки браузера |
domcontentloaded | Ожидает события DOMContentLoaded плюс дополнительное время (настраивается через -dwt) для рендеринга JavaScript |
networkidle | Ожидает прекращения сетевой активности |
none | Без ожидания — возвращается сразу после начала навигации |
| katana -u https://tesla.com -headless -pls domcontentloaded |
| Поле | Описание | Пример |
|---|
url | Конечная точка URL | https://admin.projectdiscovery.io/admin/login?user=admin&password=admin |
qurl | URL с параметрами запроса | https://admin.projectdiscovery.io/admin/login.php?user=admin&password=admin |
qpath | Путь с параметрами запроса | /login?user=admin&password=admin |
path | Путь URL | https://admin.projectdiscovery.io/admin/login |
fqdn | Полное доменное имя | admin.projectdiscovery.io |
rdn | Корневое доменное имя | projectdiscovery.io |
rurl | Корневой URL | https://admin.projectdiscovery.io |
ufile | URL с файлом | https://admin.projectdiscovery.io/login.js |
file | Имя файла в URL | login.php |
key | Ключи параметров в URL | user,password |
value | Значения параметров в URL | admin,admin |
kv | Ключи=Значения в URL | user=admin&password=admin |
dir | Имя каталога URL | /admin/ |
udir | URL с каталогом | https://admin.projectdiscovery.io/admin/ |