Características • Instalación • Uso • Alcance • Configuración • Filtros • Unirse a Discord
katana requiere Go 1.18 para instalarse correctamente. Para instalar, simplemente ejecute el siguiente comando o descargue el binario precompilado desde la página de lanzamiento.
CGO_ENABLED=1 go install github.com/projectdiscovery/katana/cmd/katana@latest
Más opciones para instalar/ejecutar katana-
Para instalar/actualizar Docker a la última etiqueta:
docker pull projectdiscovery/katana:latest
Para ejecutar katana en modo estándar usando Docker -
docker run projectdiscovery/katana:latest -u https://tesla.com
Para ejecutar katana en modo sin cabeza usando Docker -
docker run projectdiscovery/katana:latest -u https://tesla.com -system-chrome -headless
Se recomienda instalar los siguientes requisitos previos:
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
Esto mostrará ayuda para la herramienta. Aquí están todos los interruptores que admite.
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 requiere una URL o un punto final para rastrear y acepta entradas únicas o múltiples.
La URL de entrada se puede proporcionar usando la opción -u
y se pueden proporcionar múltiples valores usando la entrada separada por comas; de manera similar, la entrada de archivos se admite usando la opción -list
y, además, también se admite la entrada canalizada (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
Ejemplo ejecutando 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/
La modalidad de rastreo estándar utiliza la biblioteca go http estándar interna para manejar solicitudes/respuestas HTTP. Esta modalidad es mucho más rápida ya que no tiene la sobrecarga del navegador. Aún así, analiza el cuerpo de las respuestas HTTP tal como está, sin ningún javascript o renderizado DOM, puntos finales potencialmente faltantes renderizados post-dom o llamadas a puntos finales asincrónicas que pueden ocurrir en aplicaciones web complejas dependiendo, por ejemplo, de eventos específicos del navegador.
El modo sin cabeza conecta llamadas internas sin cabeza para manejar solicitudes/respuestas HTTP directamente dentro del contexto del navegador. Esto ofrece dos ventajas:
El rastreo sin cabeza es opcional y se puede habilitar usando la opción -headless
.
Aqui hay otras opciones de CLI sin cabeza:
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
Ejecuta el navegador Chrome sin cabeza con la opción sin zona de pruebas , lo que resulta útil cuando se ejecuta como usuario root.
katana -u https://tesla.com -headless -no-sandbox
-no-incognito
Ejecuta el navegador Chrome sin cabeza y sin modo incógnito, lo que resulta útil cuando se utiliza el navegador local.
katana -u https://tesla.com -headless -no-incognito
-headless-options
Al rastrear en modo sin cabeza, se pueden especificar opciones adicionales de Chrome usando -headless-options
, por ejemplo -
katana -u https://tesla.com -headless -system-chrome -headless-options --disable-gpu,proxy-server=http://127.0.0.1:8080
El rastreo puede ser interminable si no tiene un alcance, ya que dicha katana viene con soporte múltiple para definir el alcance del rastreo.
-field-scope
La opción más útil para definir el alcance con un nombre de campo predefinido, siendo rdn
la opción predeterminada para el alcance del campo.
rdn
: rastreo con alcance hasta el nombre de dominio raíz y todos los subdominios (por ejemplo *example.com
) (predeterminado)fqdn
: rastreo con alcance al sub(dominio) determinado (por ejemplo, www.example.com
o api.example.com
)dn
: rastreo con alcance a la palabra clave del nombre de dominio (por ejemplo, example
) katana -u https://tesla.com -fs dn
-crawl-scope
Para un control avanzado del alcance, se puede utilizar la opción -cs
que viene con soporte para expresiones regulares .
katana -u https://tesla.com -cs login
Para múltiples reglas de alcance, se puede pasar la entrada de archivos con una cadena/expresión regular de varias líneas.
$ cat in_scope.txt
login/
admin/
app/
wordpress/
katana -u https://tesla.com -cs in_scope.txt
-crawl-out-scope
Para definir qué no rastrear, se puede usar la opción -cos
y también admite la entrada de expresiones regulares .
katana -u https://tesla.com -cos logout
Para múltiples reglas fuera de alcance, se puede pasar la entrada de archivos con una cadena/expresión regular de varias líneas.
$ cat out_of_scope.txt
/logout
/log_out
katana -u https://tesla.com -cos out_of_scope.txt
-no-scope
Katana tiene el alcance predeterminado *.domain
, para deshabilitar esta opción -ns
se puede usar y también para rastrear Internet.
katana -u https://tesla.com -ns
-display-out-scope
De forma predeterminada, cuando se usa la opción de alcance, también se aplica a los enlaces que se mostrarán como salida, ya que dichas URL externas son predeterminadas para excluir y sobrescribir este comportamiento, la opción -do
se puede usar para mostrar todas las URL externas que existen en los destinos. URL/punto final con ámbito.
katana -u https://tesla.com -do
Aquí están todas las opciones de CLI para el control de alcance:
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 viene con múltiples opciones para configurar y controlar el rastreo como queramos.
-depth
Opción para definir la depth
a seguir las URL para el rastreo; cuanto más profundidad, mayor será el número de puntos finales que se rastrearán + tiempo de rastreo.
katana -u https://tesla.com -d 5
-js-crawl
Opción para habilitar el análisis de archivos JavaScript + rastreo de los puntos finales descubiertos en archivos JavaScript, deshabilitada de forma predeterminada.
katana -u https://tesla.com -jc
-crawl-duration
Opción de duración de rastreo predefinida, deshabilitada de forma predeterminada.
katana -u https://tesla.com -ct 2
-known-files
Opción para habilitar el rastreo de archivos robots.txt
y sitemap.xml
, deshabilitado de forma predeterminada.
katana -u https://tesla.com -kf robotstxt,sitemapxml
-automatic-form-fill
Opción para habilitar el llenado automático de formularios para campos conocidos/desconocidos; los valores de los campos conocidos se pueden personalizar según sea necesario actualizando el archivo de configuración del formulario en $HOME/.config/katana/form-config.yaml
.
El llenado automático de formularios es una característica experimental.
katana -u https://tesla.com -aff
El rastreo autenticado implica incluir encabezados personalizados o cookies en solicitudes HTTP para acceder a recursos protegidos. Estos encabezados proporcionan información de autenticación o autorización, lo que le permite rastrear contenido/punto final autenticado. Puede especificar encabezados directamente en la línea de comando o proporcionarlos como un archivo con katana para realizar un rastreo autenticado.
Nota : El usuario debe realizar manualmente la autenticación y exportar la cookie/encabezado de sesión a un archivo para usarlo con katana.
-headers
Opción para agregar un encabezado personalizado o cookie a la solicitud.
Sintaxis de encabezados en la especificación HTTP
A continuación se muestra un ejemplo de cómo agregar una cookie a la solicitud:
katana -u https://tesla.com -H 'Cookie: usrsess=AmljNrESo'
También es posible proporcionar encabezados o cookies como un archivo. Por ejemplo:
$ cat cookie.txt
Cookie: PHPSESSIONID=XXXXXXXXX
X-API-KEY: XXXXX
TOKEN=XX
katana -u https://tesla.com -H cookie.txt
Hay más opciones para configurar cuando sea necesario, aquí están todas las opciones CLI relacionadas con la configuración:
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 también puede conectarse a una sesión activa del navegador donde el usuario ya ha iniciado sesión y está autenticado. y úsalo para gatear. El único requisito para esto es iniciar el navegador con la depuración remota habilitada.
A continuación se muestra un ejemplo de cómo iniciar el navegador Chrome con la depuración remota habilitada y usarlo con katana:
paso 1) Primero Ubique la ruta del ejecutable de Chrome
Sistema operativo | Ubicación del ejecutable de cromo | Ubicación del ejecutable de 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 |
paso 2) Inicie Chrome con la depuración remota habilitada y devolverá la URL de websocker. Por ejemplo, en MacOS, puede iniciar Chrome con la depuración remota habilitada usando el siguiente 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
Ahora inicie sesión en el sitio web que desea rastrear y mantenga el navegador abierto.
paso 3) Ahora use la URL de websocket con katana para conectarse a la sesión activa del navegador y rastrear el sitio web
katana -headless -u https://tesla.com -cwu ws://127.0.0.1:9222/devtools/browser/c5316c9c-19d6-42dc-847a-41d1aeebf7d6 -no-incognito
Nota : puede usar la opción
-cdd
para especificar un directorio de datos de Chrome personalizado para almacenar datos del navegador y cookies, pero eso no guarda los datos de la sesión si la cookie está configurada como SoloSession
o caduca después de cierto tiempo.
-field
Katana viene con campos integrados que se pueden usar para filtrar la salida para la información deseada, la opción -f
se puede usar para especificar cualquiera de los campos disponibles.
-f, -field string field to display in output (url,path,fqdn,rdn,rurl,qurl,qpath,file,key,value,kv,dir,udir)
Aqui hay una tabla con ejemplos de cada campo y el resultado esperado cuando se usa:
CAMPO | DESCRIPCIÓN | EJEMPLO |
---|---|---|
url | Punto final de URL | https://admin.projectdiscovery.io/admin/login?user=admin&password=admin |
qurl | URL que incluye el parámetro de consulta | https://admin.projectdiscovery.io/admin/login.php?user=admin&password=admin |
qpath | Ruta que incluye el parámetro de consulta | /login?user=admin&password=admin |
path | Ruta URL | https://admin.projectdiscovery.io/admin/login |
fqdn | Nombre de dominio completo | admin.projectdiscovery.io |
rdn | Nombre de dominio raíz | projectdiscovery.io |
rurl | URL raíz | https://admin.projectdiscovery.io |
ufile | URL con archivo | https://admin.projectdiscovery.io/login.js |
file | Nombre de archivo en URL | login.php |
key | Claves de parámetros en URL | user,password |
value | Valores de parámetros en URL | admin,admin |
kv | Claves = Valores en URL | user=admin&password=admin |
dir | Nombre del directorio URL | /admin/ |
udir | URL con directorio | https://admin.projectdiscovery.io/admin/ |
A continuación se muestra un ejemplo del uso de la opción de campo para mostrar solo todas las URL con parámetros 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
Puede crear campos personalizados para extraer y almacenar información específica de las respuestas de la página utilizando reglas de expresiones regulares. Estos campos personalizados se definen mediante un archivo de configuración YAML y se cargan desde la ubicación predeterminada en $HOME/.config/katana/field-config.yaml
. Alternativamente, puede usar la opción -flc
para cargar un archivo de configuración de campo personalizado desde una ubicación diferente. A continuación se muestra un ejemplo 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} '
Al definir campos personalizados, se admiten los siguientes atributos:
El valor del atributo de nombre se utiliza como valor de la opción
-field
cli.
El tipo de atributo personalizado, opción admitida actualmente:
regex
La parte de la respuesta de la que extraer la información. El valor predeterminado es
response
, que incluye tanto el encabezado como el cuerpo. Otros valores posibles sonheader
ybody
.
Puede utilizar este atributo para seleccionar un grupo coincidente específico en expresiones regulares, por ejemplo:
group: 1
katana -u https://tesla.com -f email,phone
-store-field
Para complementar la opción field
que es útil para filtrar la salida en tiempo de ejecución, existe la opción -sf, -store-fields
que funciona exactamente igual que la opción de campo excepto que, en lugar de filtrar, almacena toda la información en el disco en el directorio katana_field
ordenada por URL de destino. . Utilice -sfd
o -store-field-dir
para almacenar datos en una ubicación 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
La opción -store-field
puede resultar útil para recopilar información para crear una lista de palabras específica para diversos fines, incluidos, entre otros:
-extension-match
La salida del rastreo se puede hacer coincidir fácilmente con una extensión específica usando la opción -em
para garantizar que se muestre solo la salida que contiene la extensión determinada.
katana -u https://tesla.com -silent -em js,jsp,json
-extension-filter
La salida del rastreo se puede filtrar fácilmente para una extensión específica usando la opción -ef
, que garantiza eliminar todas las URL que contienen una extensión determinada.
katana -u https://tesla.com -silent -ef css,txt,md
-match-regex
El indicador -match-regex
o -mr
le permite filtrar las URL de salida utilizando expresiones regulares. Cuando se utiliza esta bandera, solo se imprimirán en la salida las URL que coincidan con la expresión regular especificada.
katana -u https://tesla.com -mr 'https://shop.tesla.com/*' -silent
-filter-regex
El indicador -filter-regex
o -fr
le permite filtrar las URL de salida utilizando expresiones regulares. Al usar esta bandera, omitirá las URL que coincidan con la expresión regular especificada.
katana -u https://tesla.com -fr 'https://www.tesla.com/*' -silent
Katana admite expresiones basadas en DSL para capacidades avanzadas de filtrado y coincidencia:
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") '
Las funciones DSL se pueden aplicar a cualquier clave en la salida jsonl. Para obtener más información sobre las funciones DSL disponibles, visite el proyecto dsl.
Aqui hay opciones de filtro adicionales: