Особенности • Установка • Использование • Область применения • Конфигурация • Фильтры • Присоединиться к Discord
Для успешной установки Katana требуется Go 1.18 . Для установки просто запустите приведенную ниже команду или загрузите предварительно скомпилированный двоичный файл со страницы выпуска.
CGO_ENABLED=1 go install github.com/projectdiscovery/katana/cmd/katana@latest
Еще варианты установки/запуска катаны-
Чтобы установить/обновить докер до последней версии тега –
docker pull projectdiscovery/katana:latest
Чтобы запустить Katana в стандартном режиме с помощью Docker —
docker run projectdiscovery/katana:latest -u https://tesla.com
Чтобы запустить Katana в безголовом режиме с помощью Docker —
docker run projectdiscovery/katana:latest -u https://tesla.com -system-chrome -headless
Рекомендуется установить следующие необходимые компоненты:
sudo apt update
sudo snap refresh
sudo apt install zip curl wget git
sudo snap install golang --classic
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c ' echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list '
sudo apt update
sudo apt install google-chrome-stable
установить катану -
go install github.com/projectdiscovery/katana/cmd/katana@latest
katana -h
Появится справка по инструменту. Вот все переключатели, которые он поддерживает.
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 9223372036854775807)
-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
-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
-tlsi, -tls-impersonate enable experimental client hello (ja3) tls randomization
-dr, -disable-redirects disable following redirects (default false)
DEBUG:
-health-check, -hc run diagnostic check up
-elog, -error-log string file to write sent requests error log
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
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)
-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)
-ef, -extension-filter string[] filter output for given extension (eg, -ef png,css)
-mdc, -match-condition string match response with dsl based condition
-fdc, -filter-condition string filter response with dsl based condition
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
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
-sr, -store-response store http requests/responses
-srd, -store-response-dir string store http requests/responses to custom directory
-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
-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-адрес или конечную точку и принимает один или несколько входных данных.
Входной URL-адрес можно указать с помощью параметра -u
, а несколько значений можно указать с помощью ввода, разделенного запятыми. Аналогичным образом поддерживается ввод файла с использованием параметра -list
, а также поддерживается дополнительный ввод по конвейеру (stdin).
katana -u https://tesla.com
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
cat domains | httpx | katana
Пример запуска катаны -
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
https://www.youtube.com/manifest.webmanifest
https://www.youtube.com/s/desktop/4965577f/cssbin/www-main-desktop-watch-page-skeleton.css
https://www.youtube.com/s/desktop/4965577f/jsbin/web-animations-next-lite.min.vflset/web-animations-next-lite.min.js
https://www.youtube.com/s/desktop/4965577f/jsbin/custom-elements-es5-adapter.vflset/custom-elements-es5-adapter.js
https://www.youtube.com/s/desktop/4965577f/jsbin/webcomponents-sd.vflset/webcomponents-sd.js
https://www.youtube.com/s/desktop/4965577f/jsbin/intersection-observer.min.vflset/intersection-observer.min.js
https://www.youtube.com/s/desktop/4965577f/jsbin/scheduler.vflset/scheduler.js
https://www.youtube.com/s/desktop/4965577f/jsbin/www-i18n-constants-en_GB.vflset/www-i18n-constants.js
https://www.youtube.com/s/desktop/4965577f/jsbin/www-tampering.vflset/www-tampering.js
https://www.youtube.com/s/desktop/4965577f/jsbin/spf.vflset/spf.js
https://www.youtube.com/s/desktop/4965577f/jsbin/network.vflset/network.js
https://www.youtube.com/howyoutubeworks/
https://www.youtube.com/trends/
https://www.youtube.com/jobs/
https://www.youtube.com/kids/
Стандартный метод сканирования использует стандартную библиотеку go http для обработки HTTP-запросов/ответов. Этот метод намного быстрее, поскольку не требует дополнительных затрат на браузер. Тем не менее, он анализирует тело HTTP-ответов как есть, без какого-либо рендеринга Javascript или DOM, потенциально пропуская конечные точки, отображаемые после dom, или асинхронные вызовы конечных точек, которые могут происходить в сложных веб-приложениях в зависимости, например, от событий, специфичных для браузера.
Безголовый режим перехватывает внутренние безгласные вызовы для обработки HTTP-запросов/ответов непосредственно в контексте браузера. Это дает два преимущества:
Безголовое сканирование не является обязательным и может быть включено с помощью опции -headless
.
Вот другие варианты безголового CLI:
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
-no-sandbox
Запускает браузер Chrome без браузера с опцией «без песочницы» , что полезно при работе от имени пользователя root.
katana -u https://tesla.com -headless -no-sandbox
-no-incognito
Запускает браузер Chrome без режима инкогнито, что полезно при использовании локального браузера.
katana -u https://tesla.com -headless -no-incognito
-headless-options
При сканировании в безголовом режиме дополнительные параметры Chrome можно указать с помощью -headless-options
, например —
katana -u https://tesla.com -headless -system-chrome -headless-options --disable-gpu,proxy-server=http://127.0.0.1:8080
Сканирование может быть бесконечным, если оно не ограничено, поскольку такая катана имеет множественную поддержку для определения области сканирования.
-field-scope
Самый удобный вариант определения области действия с помощью предопределенного имени поля, при этом rdn
является опцией по умолчанию для области действия поля.
rdn
— сканирование ограничено корневым доменным именем и всеми поддоменами (например, *example.com
) (по умолчанию)fqdn
– сканирование ограничено данным поддоменом (например, www.example.com
или api.example.com
).dn
— сканирование ограничено ключевым словом доменного имени (например, example
). katana -u https://tesla.com -fs dn
-crawl-scope
Для расширенного управления областью действия можно использовать опцию -cs
, которая поддерживает регулярные выражения .
katana -u https://tesla.com -cs login
Для нескольких правил в области действия можно передать ввод файла с многострочной строкой или регулярным выражением.
$ cat in_scope.txt
login/
admin/
app/
wordpress/
katana -u https://tesla.com -cs in_scope.txt
-crawl-out-scope
Чтобы определить, что не сканировать, можно использовать опцию -cos
, а также поддерживать ввод регулярных выражений .
katana -u https://tesla.com -cos logout
Для нескольких правил вне области действия можно передать ввод файла с многострочной строкой или регулярным выражением.
$ cat out_of_scope.txt
/logout
/log_out
katana -u https://tesla.com -cos out_of_scope.txt
-no-scope
По умолчанию Katana имеет область действия *.domain
. Для отключения этой опции можно использовать опцию -ns
, а также для сканирования Интернета.
katana -u https://tesla.com -ns
-display-out-scope
По умолчанию, когда используется параметр области, он также применяется к ссылкам, отображаемым в качестве выходных данных, поскольку такие внешние URL-адреса по умолчанию исключаются и перезаписывают это поведение. Опцию -do
можно использовать для отображения всех внешних URL-адресов, существующих в целевых объектах. ограниченный URL/конечная точка.
katana -u https://tesla.com -do
Вот все параметры CLI для управления областью действия:
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
Сканирование с проверкой подлинности предполагает включение пользовательских заголовков или файлов cookie в HTTP-запросы для доступа к защищенным ресурсам. Эти заголовки предоставляют информацию об аутентификации или авторизации, позволяющую сканировать аутентифицированный контент/конечную точку. Вы можете указать заголовки непосредственно в командной строке или предоставить их в виде файла с помощью Katana для выполнения сканирования с проверкой подлинности.
Примечание . Пользователю необходимо вручную выполнить аутентификацию и экспортировать файл cookie/заголовок сеанса в файл для использования с Katana.
-headers
Возможность добавить к запросу собственный заголовок или файл cookie.
Синтаксис заголовков в спецификации HTTP
Вот пример добавления куки в запрос:
katana -u https://tesla.com -H 'Cookie: usrsess=AmljNrESo'
Также возможно предоставить заголовки или файлы cookie в виде файла. Например:
$ cat cookie.txt
Cookie: PHPSESSIONID=XXXXXXXXX
X-API-KEY: XXXXX
TOKEN=XX
katana -u https://tesla.com -H cookie.txt
При необходимости можно настроить дополнительные параметры, вот все параметры CLI, связанные с конфигурацией:
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")
Katana также может подключиться к активному сеансу браузера, в котором пользователь уже вошел в систему и прошел проверку подлинности. и использовать его для сканирования. Единственное требование для этого — запустить браузер с включенной удаленной отладкой.
Вот пример запуска браузера Chrome с включенной удаленной отладкой и его использования с катаной:
шаг 1) Сначала найдите путь к исполняемому файлу Chrome.
Операционная система | Расположение исполняемого файла Chromium | Местоположение исполняемого файла Google Chrome |
---|---|---|
Windows (64-разрядная версия) | C:Program Files (x86)GoogleChromiumApplicationchrome.exe | C:Program Files (x86)GoogleChromeApplicationchrome.exe |
Windows (32-разрядная версия) | C:Program FilesGoogleChromiumApplicationchrome.exe | C:Program FilesGoogleChromeApplicationchrome.exe |
macOS | /Applications/Chromium.app/Contents/MacOS/Chromium | /Applications/Google Chrome.app/Contents/MacOS/Google Chrome |
Линукс | /usr/bin/chromium | /usr/bin/google-chrome |
шаг 2) Запустите Chrome с включенной удаленной отладкой, и он вернет URL-адрес веб-соккера. Например, в MacOS вы можете запустить Chrome с включенной удаленной отладкой, используя следующую команду :
$ /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 -headless -u https://tesla.com -cwu ws://127.0.0.1:9222/devtools/browser/c5316c9c-19d6-42dc-847a-41d1aeebf7d6 -no-incognito
Примечание . Вы можете использовать опцию
-cdd
, чтобы указать собственный каталог данных Chrome для хранения данных браузера и файлов cookie, но это не сохраняет данные сеанса, если для файла cookie установлено значение «ТолькоSession
или срок его действия истекает через определенное время.
-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 | Конечная точка 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/ |
Вот пример использования опции поля для отображения только всех 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
для загрузки файла конфигурации настраиваемого поля из другого места. Вот пример настраиваемого поля.
- 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
, которая работает точно так же, как опция поля, за исключением того, что вместо фильтрации она сохраняет всю информацию на диске в каталоге katana_field
отсортированную по целевому URL-адресу. . Используйте -sfd
или -store-field-dir
для хранения данных в другом месте.
katana -u https://tesla.com -sf key,fqdn,qurl -silent
$ ls katana_field/
https_www.tesla.com_fqdn.txt
https_www.tesla.com_key.txt
https_www.tesla.com_qurl.txt
Опция -store-field
может быть полезна для сбора информации для создания целевого списка слов для различных целей, включая, помимо прочего:
-extension-match
Вывод сканирования можно легко сопоставить с конкретным расширением, используя параметр -em
, чтобы гарантировать отображение только вывода, содержащего данное расширение.
katana -u https://tesla.com -silent -em js,jsp,json
-extension-filter
Результаты сканирования можно легко отфильтровать по конкретному расширению с помощью опции -ef
, которая гарантирует удаление всех URL-адресов, содержащих данное расширение.
katana -u https://tesla.com -silent -ef css,txt,md
-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 для расширенных возможностей сопоставления и фильтрации:
katana -u https://www.hackerone.com -mdc ' status_code == 200 '
katana -u https://www.hackerone.com -mdc ' contains(endpoint, "default") && status_code != 403 '
katana -u https://www.hackerone.com -mdc ' contains(to_lower(technologies), "php") '
katana -u https://www.hackerone.com -fdc ' contains(to_lower(technologies), "cloudflare") '
Функции DSL можно применять к любым ключам в выводе jsonl. Для получения дополнительной информации о доступных функциях DSL посетите проект dsl.
Вот дополнительные параметры фильтра –