Recursos • Instalação • Uso • Escopo • Configuração • Filtros • Junte-se ao Discord
katana requer Go 1.18 para ser instalado com sucesso. Para instalar, basta executar o comando abaixo ou baixar o binário pré-compilado na página de lançamento.
CGO_ENABLED=1 go install github.com/projectdiscovery/katana/cmd/katana@latest
Mais opções para instalar/executar katana-
Para instalar/atualizar o docker para a tag mais recente -
docker pull projectdiscovery/katana:latest
Para executar o Katana no modo padrão usando o docker -
docker run projectdiscovery/katana:latest -u https://tesla.com
Para executar o Katana no modo headless usando o docker -
docker run projectdiscovery/katana:latest -u https://tesla.com -system-chrome -headless
É recomendado instalar os seguintes pré-requisitos –
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
instalar katana -
go install github.com/projectdiscovery/katana/cmd/katana@latest
katana -h
Isso exibirá ajuda para a ferramenta. Aqui estão todos os switches que ele suporta.
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 requer url ou endpoint para rastrear e aceita entradas únicas ou múltiplas.
O URL de entrada pode ser fornecido usando a opção -u
, e vários valores podem ser fornecidos usando entrada separada por vírgula, da mesma forma, a entrada de arquivo é suportada usando a opção -list
e adicionalmente a entrada canalizada (stdin) também é suportada.
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
Exemplo de execução de 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/
A modalidade de rastreamento padrão usa a biblioteca go http padrão para lidar com solicitações/respostas HTTP. Esta modalidade é muito mais rápida porque não sobrecarrega o navegador. Ainda assim, ele analisa o corpo das respostas HTTP como está, sem qualquer renderização de javascript ou DOM, pontos de extremidade renderizados post-dom potencialmente ausentes ou chamadas de ponto de extremidade assíncronas que podem acontecer em aplicativos da web complexos, dependendo, por exemplo, de eventos específicos do navegador.
O modo headless conecta chamadas headless internas para lidar com solicitações/respostas HTTP diretamente no contexto do navegador. Isso oferece duas vantagens:
O rastreamento sem cabeça é opcional e pode ser ativado usando a opção -headless
.
Aqui estão outras opções de CLI sem cabeça -
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
Executa o navegador Chrome headless com opção sem sandbox , útil ao executar como usuário root.
katana -u https://tesla.com -headless -no-sandbox
-no-incognito
Executa o navegador Chrome headless sem modo de navegação anônima, útil ao usar o navegador local.
katana -u https://tesla.com -headless -no-incognito
-headless-options
Ao rastrear no modo headless, opções adicionais do Chrome podem ser especificadas usando -headless-options
, por exemplo -
katana -u https://tesla.com -headless -system-chrome -headless-options --disable-gpu,proxy-server=http://127.0.0.1:8080
O rastreamento pode ser infinito se não tiver escopo, já que tal katana vem com suporte múltiplo para definir o escopo do rastreamento.
-field-scope
A opção mais útil para definir o escopo com um nome de campo predefinido, sendo rdn
a opção padrão para o escopo do campo.
rdn
- rastreamento com escopo definido para o nome de domínio raiz e todos os subdomínios (por exemplo, *example.com
) (padrão)fqdn
- rastreamento com escopo para determinado sub(domínio) (por exemplo, www.example.com
ou api.example.com
)dn
- rastreamento com escopo para palavra-chave de nome de domínio (por exemplo, example
) katana -u https://tesla.com -fs dn
-crawl-scope
Para controle de escopo avançado, pode ser usada a opção -cs
que vem com suporte a regex .
katana -u https://tesla.com -cs login
Para regras de escopo múltiplo, a entrada de arquivo com string/regex multilinha pode ser passada.
$ cat in_scope.txt
login/
admin/
app/
wordpress/
katana -u https://tesla.com -cs in_scope.txt
-crawl-out-scope
Para definir o que não rastrear, a opção -cos
pode ser usada e também oferece suporte à entrada regex .
katana -u https://tesla.com -cos logout
Para várias regras fora do escopo, a entrada de arquivo com string/regex multilinha pode ser passada.
$ cat out_of_scope.txt
/logout
/log_out
katana -u https://tesla.com -cos out_of_scope.txt
-no-scope
Katana é o escopo padrão *.domain
, para desabilitar esta opção -ns
pode ser usada e também para rastrear a internet.
katana -u https://tesla.com -ns
-display-out-scope
Como padrão, quando a opção de escopo é usada, ela também se aplica aos links para exibição como saída, já que tais URLs externos são padrão para excluir e substituir esse comportamento, a opção -do
pode ser usada para exibir todos os URLs externos que existem nos destinos URL/ponto final com escopo.
katana -u https://tesla.com -do
Aqui estão todas as opções CLI para o controle de escopo -
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 vem com múltiplas opções para configurar e controlar o rastreamento da maneira que desejarmos.
-depth
Opção para definir a depth
para seguir as URLs para rastreamento, quanto mais profundidade maior o número de endpoints sendo rastreados + tempo para rastreamento.
katana -u https://tesla.com -d 5
-js-crawl
Opção para ativar a análise de arquivos JavaScript e rastrear os endpoints descobertos em arquivos JavaScript, desabilitada como padrão.
katana -u https://tesla.com -jc
-crawl-duration
Opção de duração de rastreamento predefinida, desabilitada por padrão.
katana -u https://tesla.com -ct 2
-known-files
Opção para ativar o rastreamento do arquivo robots.txt
e sitemap.xml
, desabilitado como padrão.
katana -u https://tesla.com -kf robotstxt,sitemapxml
-automatic-form-fill
Opção para ativar o preenchimento automático de formulários para campos conhecidos/desconhecidos. Os valores dos campos conhecidos podem ser personalizados conforme necessário, atualizando o arquivo de configuração do formulário em $HOME/.config/katana/form-config.yaml
.
O preenchimento automático de formulários é um recurso experimental.
katana -u https://tesla.com -aff
O rastreamento autenticado envolve a inclusão de cabeçalhos ou cookies personalizados em solicitações HTTP para acessar recursos protegidos. Esses cabeçalhos fornecem informações de autenticação ou autorização, permitindo rastrear conteúdo/endpoint autenticado. Você pode especificar cabeçalhos diretamente na linha de comando ou fornecê-los como um arquivo com katana para realizar rastreamento autenticado.
Nota : O usuário precisa realizar manualmente a autenticação e exportar o cookie/cabeçalho da sessão para um arquivo para usar com Katana.
-headers
Opção para adicionar um cabeçalho ou cookie personalizado à solicitação.
Sintaxe de cabeçalhos na especificação HTTP
Aqui está um exemplo de adição de um cookie à solicitação:
katana -u https://tesla.com -H 'Cookie: usrsess=AmljNrESo'
Também é possível fornecer cabeçalhos ou cookies como arquivo. Por exemplo:
$ cat cookie.txt
Cookie: PHPSESSIONID=XXXXXXXXX
X-API-KEY: XXXXX
TOKEN=XX
katana -u https://tesla.com -H cookie.txt
Existem mais opções para configurar quando necessário, aqui estão todas as opções CLI relacionadas à configuração -
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 também pode se conectar a uma sessão ativa do navegador onde o usuário já está logado e autenticado. e use-o para rastrear. O único requisito para isso é iniciar o navegador com a depuração remota habilitada.
Aqui está um exemplo de como iniciar o navegador Chrome com a depuração remota habilitada e usá-lo com Katana -
etapa 1) Primeiro localize o caminho do executável do Chrome
Sistema operacional | Localização do executável do Chromium | Localização do executável do Google Chrome |
---|---|---|
Windows (64 bits) | C:Program Files (x86)GoogleChromiumApplicationchrome.exe | C:Program Files (x86)GoogleChromeApplicationchrome.exe |
Windows (32 bits) | C:Program FilesGoogleChromiumApplicationchrome.exe | C:Program FilesGoogleChromeApplicationchrome.exe |
macOS | /Applications/Chromium.app/Contents/MacOS/Chromium | /Applications/Google Chrome.app/Contents/MacOS/Google Chrome |
Linux | /usr/bin/chromium | /usr/bin/google-chrome |
etapa 2) Inicie o Chrome com a depuração remota habilitada e ele retornará o URL do websocker. Por exemplo, no MacOS, você pode iniciar o Chrome com a depuração remota habilitada usando o seguinte comando -
$ /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
Agora faça login no site que deseja rastrear e mantenha o navegador aberto.
etapa 3) Agora use o URL do websocket com katana para conectar-se à sessão ativa do navegador e rastrear o site
katana -headless -u https://tesla.com -cwu ws://127.0.0.1:9222/devtools/browser/c5316c9c-19d6-42dc-847a-41d1aeebf7d6 -no-incognito
Nota : você pode usar a opção
-cdd
para especificar o diretório de dados do Chrome personalizado para armazenar dados e cookies do navegador, mas isso não salva os dados da sessão se o cookie estiver definido como SomenteSession
ou expirar após um determinado tempo.
-field
Katana vem com campos integrados que podem ser usados para filtrar a saída para as informações desejadas. A opção -f
pode ser usada para especificar qualquer um dos campos disponíveis.
-f, -field string field to display in output (url,path,fqdn,rdn,rurl,qurl,qpath,file,key,value,kv,dir,udir)
Aqui está uma tabela com exemplos de cada campo e resultado esperado quando usado -
CAMPO | DESCRIÇÃO | EXEMPLO |
---|---|---|
url | Ponto final do URL | https://admin.projectdiscovery.io/admin/login?user=admin&password=admin |
qurl | URL incluindo parâmetro de consulta | https://admin.projectdiscovery.io/admin/login.php?user=admin&password=admin |
qpath | Caminho incluindo parâmetro de consulta | /login?user=admin&password=admin |
path | Caminho do URL | https://admin.projectdiscovery.io/admin/login |
fqdn | Nome de domínio totalmente qualificado | admin.projectdiscovery.io |
rdn | Nome de domínio raiz | projectdiscovery.io |
rurl | URL raiz | https://admin.projectdiscovery.io |
ufile | URL com arquivo | https://admin.projectdiscovery.io/login.js |
file | Nome do arquivo no URL | login.php |
key | Chaves de parâmetro em URL | user,password |
value | Valores de parâmetros em URL | admin,admin |
kv | Chaves=Valores em URL | user=admin&password=admin |
dir | Nome do diretório de URL | /admin/ |
udir | URL com diretório | https://admin.projectdiscovery.io/admin/ |
Aqui está um exemplo de uso da opção de campo para exibir apenas todos os URLs com parâmetro de consulta -
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
Você pode criar campos personalizados para extrair e armazenar informações específicas das respostas da página usando regras regex. Esses campos personalizados são definidos usando um arquivo de configuração YAML e são carregados do local padrão em $HOME/.config/katana/field-config.yaml
. Alternativamente, você pode usar a opção -flc
para carregar um arquivo de configuração de campo personalizado de um local diferente. Aqui está um exemplo de campo personalizado.
- 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} '
Ao definir campos personalizados, os seguintes atributos são suportados:
O valor do atributo name é usado como o valor da opção cli
-field
.
O tipo de atributo personalizado, opção atualmente suportada -
regex
A parte da resposta da qual extrair as informações. O valor padrão é
response
, que inclui o cabeçalho e o corpo. Outros valores possíveis sãoheader
ebody
.
Você pode usar este atributo para selecionar um grupo correspondente específico em regex, por exemplo:
group: 1
katana -u https://tesla.com -f email,phone
-store-field
Para complementar a opção field
que é útil para filtrar a saída em tempo de execução, existe a opção -sf, -store-fields
que funciona exatamente como a opção de campo, exceto que em vez de filtrar, ela armazena todas as informações no disco no diretório katana_field
classificadas por URL de destino . Use -sfd
ou -store-field-dir
para armazenar dados em um local diferente.
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
A opção -store-field
pode ser útil para coletar informações para construir uma lista de palavras direcionada para diversos fins, incluindo, mas não se limitando a:
-extension-match
A saída do rastreamento pode ser facilmente correspondida para uma extensão específica usando a opção -em
para garantir a exibição apenas da saída contendo determinada extensão.
katana -u https://tesla.com -silent -em js,jsp,json
-extension-filter
A saída do rastreamento pode ser facilmente filtrada para uma extensão específica usando a opção -ef
, que garante a remoção de todos os URLs que contêm determinada extensão.
katana -u https://tesla.com -silent -ef css,txt,md
-match-regex
O sinalizador -match-regex
ou -mr
permite filtrar URLs de saída usando expressões regulares. Ao usar este sinalizador, apenas URLs que correspondam à expressão regular especificada serão impressos na saída.
katana -u https://tesla.com -mr 'https://shop.tesla.com/*' -silent
-filter-regex
O sinalizador -filter-regex
ou -fr
permite filtrar URLs de saída usando expressões regulares. Ao usar este sinalizador, ele irá ignorar os URLs que correspondem à expressão regular especificada.
katana -u https://tesla.com -fr 'https://www.tesla.com/*' -silent
Katana oferece suporte a expressões baseadas em DSL para recursos avançados de correspondência e filtragem:
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") '
As funções DSL podem ser aplicadas a qualquer chave na saída jsonl. Para obter mais informações sobre as funções DSL disponíveis, visite o projeto dsl.
Aqui estão opções de filtro adicionais -