Katana入门指南:网络安全工具功能介绍与使用技巧

admin 2024年10月4日23:56:38评论53 views字数 5568阅读18分33秒阅读模式

简介 🥸

Katana入门指南:网络安全工具功能介绍与使用技巧

主要功能和特点:

  1. 快速且可完全配置的网页爬虫:Katana能够以高效和可定制的方式对网页进行爬取。
  2. 支持标准和无头模式:无头模式允许爬虫在没有用户界面的情况下运行,适用于复杂的Web应用程序。
  3. JavaScript解析与爬取支持:Katana能够解析和爬取包含JavaScript动态内容的网页。
  4. 自动表单填写:享有可自定义的自动表单填写功能,以便在需要时自动填充网页表单信息。
  5. 可定制的输出:通过预配置字段实现结果输出的定制化,以满足不同分析需求。
  6. 可定制的范围控制:利用预配置字段和正则表达式控制爬虫范围,避免不必要的爬取。
  7. 多种输入和输出支持:支持通过STDIN、URL和列表进行输入,以及STDOUT、文件和JSON格式的输出。

项目地址:https://github.com/projectdiscovery/katana

安装 😓

Windows安装

  1. 确保您的系统上已经安装了Go编程语言。

  2. 打开命令提示符(cmd)或PowerShell。

  3. 输入以下命令以安装Katana:

    go install github.com/projectdiscovery/katana/cmd/katana@latest

  4. 添加Go的bin目录到系统路径:

    • 打开“环境变量”设置。
    • %USERPROFILE%\go\bin添加到“系统变量”中的Path变量。
  5. 安装完成后,您可以通过在命令提示符中输入katana进行确认安装。

Linux安装

  1. 确保您已经安装了Go编程语言。

  2. 打开终端。

  3. 在终端中输入以下命令执行安装:

    go install github.com/projectdiscovery/katana/cmd/katana@latest

  4. 将Go的bin路径添加到系统路径中,执行以下命令:

    echo 'export PATH=$PATH:$HOME/go/bin' >> ~/.bashrc
    source ~/.bashrc

  5. 使用katana命令检查安装是否成功。

Mac安装

  1. 确保您已在系统上安装Go。

  2. 打开终端。

  3. 输入以下命令进行安装:

    go install github.com/projectdiscovery/katana/cmd/katana@latest

  4. 将Go的bin路径添加到系统路径,使用以下命令:

    echo 'export PATH=$PATH:$HOME/go/bin' >> ~/.bash_profile
    source ~/.bash_profile

  5. 完成安装后,您可以通过终端输入katana进行检查。

使用 🥲

参数选项

Katana 是一款专注于自动化管道执行的快速爬虫工具,提供无头和非无头的爬取功能。

用法:
katana [flags]

标志:
输入:
-u, -list string[] 要爬取的目标 URL / 列表
-resume string 使用 resume.cfg 恢复扫描
-e, -exclude string[] 排除与指定过滤器匹配的主机('cdn''private-ips', cidr, ip, regex)

配置:
-r, -resolvers string[] 自定义解析器列表(文件或逗号分隔)
-d, -depth int 最大爬取深度(默认 3)
-jc, -js-crawl 在 JavaScript 文件中启用端点解析/爬取
-jsl, -jsluice 在 JavaScript 文件中启用 jsluice 解析(内存密集型)
-ct, -crawl-duration value 最大爬取目标的持续时间(s, m, h, d)(默认 s)
-kf, -known-files string 启用已知文件的爬取(all,robotstxt,sitemapxml),最小深度为 3 以确保正确爬取所有已知文件。
-mrs, -max-response-size int 读取的最大响应大小(默认 9223372036854775807)
-timeout int 请求等待时间,单位秒(默认 10)
-aff, -automatic-form-fill 启用自动表单填充(实验性)
-fx, -form-extraction 在 jsonl 输出中提取表单、输入、textarea 和 select 元素
-retry int 重试请求的次数(默认 1)
-proxy string 要使用的 http/socks5 代理
-H, -headers string[] 以 header:value 格式在所有 http 请求中包含的自定义头部/cookie(文件)
-config string Katana 配置文件的路径
-fc, -form-config string 自定义表单配置文件的路径
-flc, -field-config string 自定义字段配置文件的路径
-s, -strategy string 访问策略(深度优先、广度优先)(默认"深度优先")
-iqp, -ignore-query-params 忽略具有不同查询参数的相同路径的爬取
-tlsi, -tls-impersonate 启用实验性客户端 hello (ja3) TLS 随机化
-dr, -disable-redirects 禁用跟随重定向(默认 false)

调试:
-health-check, -hc 运行诊断检查
-elog, -error-log string 写入发送请求错误日志的文件

无头:
-hl, -headless 启用无头混合爬取(实验性)
-sc, -system-chrome 使用本地安装的 Chrome 浏览器而不是 Katana 安装的
-sb, -show-browser 在无头模式下显示浏览器
-ho, -headless-options string[] 以附加选项启动无头 Chrome
-nos, -no-sandbox 在 --no-sandbox 模式下启动无头 Chrome
-cdd, -chrome-data-dir string 存储 Chrome 浏览器数据的路径
-scp, -system-chrome-path string 为无头爬取使用指定的 Chrome 浏览器
-noi, -no-incognito 在非隐身模式下启动无头 Chrome
-cwu, -chrome-ws-url string 使用在此 URL 上侦听调试器的其他地方启动的 Chrome 浏览器实例
-xhr, -xhr-extraction 在 jsonl 输出中提取 xhr 请求 url 和方法

被动:
-ps, -passive 启用被动源以发现目标端点
-pss, -passive-source string[] 用于 URL 发现的被动源(waybackarchive,commoncrawl,alienvault)

范围:
-cs, -crawl-scope string[] 爬虫应遵循的范围内 URL 正则表达式
-cos, -crawl-out-scope string[] 爬虫应排除的范围外 URL 正则表达式
-fs, -field-scope string 预定义的范围字段(dn,rdn,fqdn)或自定义正则表达式(例如,'(company-staging.io|company.com)')(默认"rdn")
-ns, -no-scope 禁用基于主机的默认范围
-do, -display-out-scope 显示从范围内爬取的外部端点

过滤:
-mr, -match-regex string[] 要在输出 URL 上匹配的正则表达式或正则表达式列表(cli, file)
-fr, -filter-regex string[] 要在输出 URL 上过滤的正则表达式或正则表达式列表(cli, file)
-f, -field string 要在输出中显示的字段(url,path,fqdn,rdn,rurl,qurl,qpath,file,ufile,key,value,kv,dir,udir)
-sf, -store-field string 要在每个主机输出中存储的字段(url,path,fqdn,rdn,rurl,qurl,qpath,file,ufile,key,value,kv,dir,udir)
-em, -extension-match string[] 匹配给定扩展名的输出(例如, -em php,html,js)
-ef, -extension-filter string[] 过滤给定扩展名的输出(例如, -ef png,css)
-mdc, -match-condition string 使用 DSL 条件匹配响应
-fdc, -filter-condition string 使用 DSL 条件过滤响应

速率限制:
-c, -concurrency int 要使用的并发获取器数量(默认 10)
-p, -parallelism int 要处理的并发输入数量(默认 10)
-rd, -delay int 每个请求之间的请求延迟,单位秒
-rl, -rate-limit int 每秒最大请求数(默认 150)
-rlm, -rate-limit-minute int 每分钟最大请求数

更新:
-up, -update 更新 Katana 到最新版本
-duc, -disable-update-check 禁用自动 Katana 更新检查

输出:
-o, -output string 写入输出的文件
-sr, -store-response 存储 HTTP 请求/响应
-srd, -store-response-dir string 将 HTTP 请求/响应存储到自定义目录
-or, -omit-raw 从 jsonl 输出中省略原始请求/响应
-ob, -omit-body 从 jsonl 输出中省略响应正文
-j, -jsonl 以 jsonl 格式写入输出
-nc, -no-color 禁用输出内容着色(ANSI 转义码)
-silent 仅显示输出
-v, -verbose 显示详细输出
-debug 显示调试输出
-version 显示项目版本

1. 基本使用案例

  • 单一 URL 输入

    katana -u <https://example.com>

  • 多 URL 输入

    katana -u <https://example.com>,<https://another-example.com>

  • 列表文件输入

    katana -list url_list.txt

  • 通过 STDIN 输入

    echo <https://example.com> | katana

2. 爬虫模式

  • 标准模式

    • 使用标准的 Go HTTP 库进行爬取,速度快但可能漏掉一些动态内容。
  • 无头模式

    katana -u <https://example.com> -headless

3. 范围控制

  • 域名关键字范围控制

    katana -u <https://example.com> -fs dn

  • 高级正则表达式控制范围

    katana -u <https://example.com> -cs in_scope.txt

4. 爬虫配置

  • 设定爬取深度

    katana -u <https://example.com> -d 5

  • JavaScript 文件解析和爬取

    katana -u <https://example.com> -jc

  • 已知文件爬取

    katana -u <https://example.com> -kf robotstxt,sitemapxml

5. 过滤选项

  • 字段过滤

    katana -u <https://example.com> -f qurl -silent

  • 扩展名过滤

    katana -u <https://example.com> -silent -ef css,txt

6. 速率限制

  • 请求延迟

    katana -u <https://example.com> -delay 2

  • 并发数控制

    katana -u <https://example.com> -c 20

7. 输出选项

  • 输出为 JSONL 文件

    katana -u <https://example.com> -jsonl -o output.jsonl

  • 存储请求和响应

    katana -u <https://example.com> -sr

参考链接 😋

  • https://github.com/projectdiscovery/katana
  • https://docs.projectdiscovery.io/tools/katana/overview

原文始发于微信公众号(人遁安全):Katana入门指南:网络安全工具功能介绍与使用技巧

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月4日23:56:38
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Katana入门指南:网络安全工具功能介绍与使用技巧https://cn-sec.com/archives/3230473.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息