前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用 ZAP 扫描 API

使用 ZAP 扫描 API

原创
作者头像
Khan安全团队
发布于 2022-01-14 01:47:15
发布于 2022-01-14 01:47:15
2.2K10
代码可运行
举报
文章被收录于专栏:Khan安全团队Khan安全团队
运行总次数:0
代码可运行

脚本 zap-api-scan.py 包含在Weekly和 Live ZAP Docker 镜像中,它也将包含在下一个 稳定镜像中。

要使用 API 扫描脚本,您只需使用以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker pull owasp/zap2docker-weekly  
docker run -t owasp/zap2docker-weekly zap-api-scan.py -t \  
    https://www.example.com/openapi.json -f openapi  

默认情况下,脚本:

  1. 导入提供的 API 定义
  2. 使用针对 API 调整的自定义扫描配置文件主动扫描 API
  3. 向命令行报告发现的任何问题

如果没有报告任何问题,那么这并不意味着您的 API 是安全的。 如果您的 API 特别重要或敏感,那么在扫描之后进行手动渗透测试是明智的。您还应该测试使用 API 的应用程序,因为通过 API 返回的数据如果不能适当地转义最初通过用户输入的数据,仍然可以用来攻击应用程序。

命令行选项

该脚本有许多命令行选项,可以根据您的要求对其进行调整:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Usage: zap-api-scan.py -t <target> -f <format> [options]  
    -t target         target API definition, OpenAPI or SOAP, local file or URL, e.g. https://www.example.com/openapi.json  
    -f format         either openapi or soap  
Options:  
    -c config_file    config file to use to INFO, IGNORE or FAIL warnings  
    -u config_url     URL of config file to use to INFO, IGNORE or FAIL warnings  
    -g gen_file       generate default config file(all rules set to WARN)  
    -r report_html    file to write the full ZAP HTML report  
    -w report_md      file to write the full ZAP Wiki(Markdown) report  
    -x report_xml     file to write the full ZAP XML report  
    -a                include the alpha passive scan rules as well  
    -d                show debug messages  
    -P                specify listen port  
    -D                delay in seconds to wait for passive scanning  
    -i                default rules not in the config file to INFO  
    -l level          minimum level to show: PASS, IGNORE, INFO, WARN or FAIL, use with -s to hide example URLs  
    -n context_file   context file which will be loaded prior to scanning the target  
    -p progress_file  progress file which specifies issues that are being addressed  
    -s                short output format - don't show PASSes or example URLs  
    -z zap_options ZAP command line options e.g. -z "-config aaa=bbb -config ccc=ddd"  

扫描规则

默认情况下,该脚本将使用针对 API 调整的扫描策略。 这将禁用专注于客户端(例如浏览器)问题的规则,例如用于检测跨站脚本的规则,并且还添加了 2 个作为脚本实现的附加规则:

  • Alert_on_HTTP_Response_Code_Errors.js
  • Alert_on_Unexpected_Content_Types.js

您可以使用配置文件更改运行哪些规则以及如何报告故障。这允许您调整扫描脚本以满足您对每个 API 的要求。 要生成配置文件,请使用“-g”选项。这将创建一个文件,其中包含所有可用的主动和被动扫描规则。有关详细信息,请参阅配置文件。您可以使用文本编辑器编辑此文件。 更改被动规则只会影响报告失败的方式,但将主动规则更改为 IGNORE 会阻止规则运行。这是为了减少整体扫描时间 - 被动规则非常快,而主动规则可能需要大量时间。

指定值

ZAP 将在导入 API 时使用一组默认值。在某些情况下,这些值对于特定应用程序来说不是合适的值,因此不会对代码进行足够的练习。例如,用户名“test”可能不会导致创建新用户,因为它不是有效的电子邮件地址。 对于使用 OpenAPI/Swagger 定义的 API,您可以通过 ZAP 命令行选项指定希望 ZAP 使用的值。 例如选项:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  -config formhandler.fields.field\\(0\\).fieldId=username \  
  -config formhandler.fields.field\\(0\\).value=test@example.com \  
  -config formhandler.fields.field\\(0\\).enabled=true \  
  -config formhandler.fields.field\\(1\\).fieldId=phone \  
  -config formhandler.fields.field\\(1\\).value=012345678 \  
  -config formhandler.fields.field\\(1\\).enabled=true  

将为命名字段提供以下值: username-> test@example.com phone->012345678 还计划支持为使用 SOAP 定义的 API 指定值 - 如果您需要,请与 ZAP 开发团队联系,我们将尽最大努力优先考虑。

请注意,由于这些是 ZAP 命令行选项,您需要使用 -z 脚本选项将它们指定给脚本。 如果您需要指定很多选项,那么您可以将它们全部放在一个属性文件中,例如称为 options.prop 然后您可以使用如下命令运行 API 扫描:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run -v $(pwd):/zap/wrk/:rw -t owasp/zap2docker-weekly zap-api-scan.py \  
    -t https://www.example.com/openapi.json -f openapi \  
    -z "-configfile /zap/wrk/options.prop"  

"-v $(pwd):/zap/wrk/:rw"是一个 Docker 选项,它将当前工作目录映射到 Docker 实例中名为 /zap/wrk 的文件夹。

验证

您的某些 API 可能会使用身份验证机制进行保护。 对于使用标头值的机制,我们建议您使用任何适当的方式为您的应用程序获取合适的令牌,然后通过另一组命令行选项告诉 ZAP 使用它们。 例如选项:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  -config replacer.full_list\\(0\\).description=auth1 \  
  -config replacer.full_list\\(0\\).enabled=true \  
  -config replacer.full_list\\(0\\).matchtype=REQ_HEADER \  
  -config replacer.full_list\\(0\\).matchstr=Authorization \  
  -config replacer.full_list\\(0\\).regex=false \  
  -config replacer.full_list\\(0\\).replacement=123456789 \  
  -config replacer.full_list\\(1\\).description=auth2 \  
  -config replacer.full_list\\(1\\).enabled=true \  
  -config replacer.full_list\\(1\\).matchtype=REQ_HEADER \  
  -config replacer.full_list\\(1\\).matchstr=AnotherHeader \  
  -config replacer.full_list\\(1\\).regex=false \  
  -config replacer.full_list\\(1\\).replacement=abcdefghi  

将导致以下标头添加到 ZAP 发出的每个请求中: Authorization: 123456789 AnotherHeader: abcdefghi 您可以使用递增索引指定任意数量的标头。

此功能由 ZAP 默认包含的Replacer插件提供。它非常强大,可以做的不仅仅是注入新的标头值,因此如果您需要以其他方式操作 ZAP 发出的请求,那么这对您来说可能是一个非常好的选择。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
1 条评论
热度
最新
跟我的想法差不多,Havoc是最适合二开的C2,C2的工作量一个人从0开始搞是太难了
跟我的想法差不多,Havoc是最适合二开的C2,C2的工作量一个人从0开始搞是太难了
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
Cobalt Strike已死?如何真正意义上的入门免杀
本文章以原生的cs为基础进行免杀来进行简单的闲谈和讲解,内容版本从 cs4.5-cs4.9.1。
乌鸦安全
2024/03/15
4.1K0
Cobalt Strike已死?如何真正意义上的入门免杀
闲谈免杀二
乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
乌鸦安全
2023/10/20
1K0
闲谈免杀二
【免杀手法】红队免杀木马快速生成
Step 2:生成的beacon.bin放入程序目录下然后运行命令加密,AES key可以自定义(256bit)
Al1ex
2025/01/02
4150
【免杀手法】红队免杀木马快速生成
我有关于免杀的2个概念和3个误区要讲
加载器是一种技术,打个比方,核弹,核弹它不是一个导弹,它是一个弹头配一个推进加载器,用什么推进器和弹头决定了它的威力,你用高超音速导弹,那就很厉害,你用普通导弹也不是不可以,只不过就是慢一点。还有一种是飞机搭载,就跟俄罗斯的匕首一样,他可以用先进战斗机搭载,战斗机就是他的平台,匕首就是加载器,它可以搭载核弹头也可以搭载钻地弹,弹头就相当于我们的shellcode或者是paylaod,用什么加载器决定了你能否绕过杀软或EDR,这么说明白了么?
白帽子安全笔记
2024/10/28
1440
我有关于免杀的2个概念和3个误区要讲
新版掩日——免杀Windows Defender
乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
乌鸦安全
2022/06/07
7.3K0
新版掩日——免杀Windows Defender
闲谈免杀
乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
乌鸦安全
2023/09/10
9351
闲谈免杀
远控免杀从入门到实践——工具总结篇
在了解了免杀的一些基础知识和 Metasploit 自带的一些免杀方式之后,我开始学习和研究市面上知名度比较高的免杀工具,从互联网上找到了大约 30 多个免杀工具,从中筛选出来了 21 个工具进行免杀测试和学习,耗时一个多月时间。
FB客服
2020/02/26
4.2K0
CS免杀之信手拈来
最近搞了一个cs免杀的东西出来,主流的杀毒软件,某绒,某0,windows defender都轻松过掉,但是把在测试卡巴全方位版时,成功上线之后就死掉了,我怀疑不是内存查杀,如果是内存查杀,我把shellcode写进去内存的时候,就应该爆肚了,我觉得还是cs上线之后的行为触发卡巴的杀毒机制,就哦豁了。
Gamma实验室
2021/08/20
1.5K0
【新版】掩日免杀windows Defender「建议收藏」
掩日免杀是一个非常优秀的项目,目前在4月19号已经更新,更新的变动较大,支持的种类更多,在这里再试试现在的效果如何: https://github.com/1y0n/av_evasion_tool/
全栈程序员站长
2022/09/24
2.8K0
【新版】掩日免杀windows Defender「建议收藏」
远控免杀专题-shellcode免杀实践
目前网上有很多的自动生成免杀shellcode的工具,但是要知道杀毒软件检测某个免杀工具也是非常容易的,因为这些流行工具的指纹很容易被杀软公司搜集到然后加入特征库,这样就使得通过这个工具制作的shellcode免杀基本上就失灵了,工具就变得很容易过时,所以我们需要来自己制作免杀。
洛米唯熊
2020/03/12
2.7K0
HW : Cobalt Strike 应该这样学
上一篇文章中讲解了elf loader的实现,接下来会有文章继续拓展这个内容:打造无execve的shellcode版 bash,未来的linux渗透大杀器。
七夜安全博客
2020/05/18
1.7K0
免杀 | 利用Python免杀CS Shellcode
2019年,告别了coder的世界,告别了从前的生活。我决定暂时抛开金钱至上的价值体系,以一个Fucking loser的身份去寻找人生中的三大哲学问题,我是谁,我在哪儿,我在做什么。褪去了互联网行业的尔虞我诈,轻浮缥缈。在这个铺天盖地的泛娱乐时代,我决定去看看大海,去感受下海水的味道,没错,它确实是咸的。当沙滩上的沙子铺满全身的那一刻,我,拥有了几分钟童年。在途中,偶遇了黄河,没错,它确实很黄,并且波涛汹涌。也在这途中,缘分使我进入了曾经告别的安全行业。
HACK学习
2020/02/26
4.6K0
XDOG 在线免杀平台 20241014 更新!
锦鲤安全的技术文章仅供参考,此文所提供的信息仅供网络安全人员学习和参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。如有侵权烦请告知,我们会立即删除并致歉。本文所提供的工具仅用于学习,禁止用于其他,请在24小时内删除工具文件!谢谢!
Creaper
2024/10/15
5430
XDOG 在线免杀平台 20241014 更新!
【工具分享】免杀360&火绒的shellcode加载器
乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
乌鸦安全
2022/01/25
2.2K0
【工具分享】免杀360&火绒的shellcode加载器
UUID结合回调函数免杀初探
乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
乌鸦安全
2022/03/11
1.8K0
UUID结合回调函数免杀初探
早鸟注入PPID欺骗EDR绕过免杀加载器
一般的木马运行后,如果本身有外联行为, 容易被EDR检测到异常的网络连接,结束进程shell就掉了,如果我们将进程注入到notepad.exe,则notepad每60秒开始发送一次https数据包,这也将非常可疑。但是如果发送数据包的是Edge浏览器,这再正常不过了,EDR可能直接放行。
白帽子安全笔记
2024/10/28
2420
早鸟注入PPID欺骗EDR绕过免杀加载器
远控免杀专题(5)-Veil免杀(VT免杀率23/71)
1、远控免杀专题(1)-基础篇:https://mp.weixin.qq.com/s/3LZ_cj2gDC1bQATxqBfweg
Ms08067安全实验室
2020/03/04
2.2K0
远控免杀专题(5)-Veil免杀(VT免杀率23/71)
议题解读:Operation Bypass Catch My Payload If You Can
本次简单解读的议题为:Operation Bypass Catch My Payload If You Can
鸿鹄实验室
2021/08/25
7020
记一次powershell的免杀之路(绕过360、火绒)
powershell是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能,PowerShell脚本的文本文件,其文件名需要加上扩展名“.PS1”。PowerShell需要.NET环境的支持,同时支持.NET对象,其可读性、易用性居所有Shell之首。
潇湘信安
2021/11/12
7.1K0
记一次powershell的免杀之路(绕过360、火绒)
免杀入门教程及新手常见问题解答(一)
锦鲤安全的技术文章仅供参考,此文所提供的信息仅供网络安全人员学习和参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。如有侵权烦请告知,我们会立即删除并致歉。本文所提供的工具仅用于学习,禁止用于其他,请在24小时内删除工具文件!谢谢!
Creaper
2023/11/20
4K0
免杀入门教程及新手常见问题解答(一)
相关推荐
Cobalt Strike已死?如何真正意义上的入门免杀
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验