在 ZAP 工具中添加身份验证以攻击 URL

Posted

技术标签:

【中文标题】在 ZAP 工具中添加身份验证以攻击 URL【英文标题】:Adding authentication in ZAP tool to attack a URL 【发布时间】:2015-10-09 13:42:30 【问题描述】:

如何将身份验证详细信息传递给 ZAP 工具以扫描网站。请帮我解决问题。

【问题讨论】:

【参考方案1】:

很老的问题,但它就在这里。

最简单的方法是通过 ZAP 将您的浏览器设置为代理。 在 Firefox 上,您可以访问:

选项 -> 高级 -> 网络 -> 设置。

选择手动代理配置并在 HTTP 主机中填写运行 ZAP 的机器的地址(很可能是 localhost)和配置的 ZAP 端口。

您可以检查和配置ZAP端口打开ZAP和访问:

工具 -> 选项 -> 本地代理。

然后打开您的网络浏览器并登录到您的应用程序。 现在转到 ZAP,在“站点”选项卡(ZAP 的左侧)中,选择您的站点,右键单击它并选择:

包含在上下文中 -> 默认上下文

现在打开 HTTP 会话选项卡,右键单击会话并“设置为活动”。 (HTTP 会话选项卡:查看 -> 显示选项卡 -> HTTP 会话)

现在您可以通过登录会话执行 ZAP Spider、Active Scan 等。 如果这不是您的方案,请提供有关您的应用程序使用哪种身份验证方法的更多信息。

希望它仍然可以帮助您或搜索类似问题的人。 谢谢,

【讨论】:

我看不到HTTP Session tab 查看 -> 显示选项卡 -> HTTP 会话选项卡 如何在上下文中包含默认上下文? 在将我的网站包含在默认上下文中后,我在 HTTP 会话选项卡中看不到任何条目。可能是什么问题?我的网站中有基于 cookie 的身份验证。 @kishorer747 您是否通过 ZAP 以代理身份登录?【参考方案2】:

老问题,老答案,但这里是 OWASP ZAP 的核心开发人员之一的一个很好的教程:https://www.youtube.com/watch?v=cR4gw-cPZOA

快速回答:这取决于用于身份验证的方法。您可以在“Authentication”菜单的Session Properties中设置选项,也可以在“Users”菜单中定义不同的用户。

【讨论】:

【参考方案3】:

通过 ZAP 代理进行身份验证

ZAP 支持由网站/网络应用程序实现的多种类型的身份验证。 ZAP 中的身份验证方法通过Contexts 实现,它定义了身份验证的处理方式。身份验证用于创建与经过身份验证的 webapp Users 相对应的 Sessions

OWASP ZAP 实现的一些身份验证方法有:

手动验证:此方法允许用户手动执行验证(例如,通过 ZAP 代理时在浏览器中验证)。 HTTP/NTLM 身份验证:此方法用于使用 HTTP 或 NTLM 身份验证机制强制执行身份验证的网站/Web 应用程序,该机制采用 HTTP 消息标头。支持三种身份验证方案:Basic、Digest 和 NTLM。 基于表单的身份验证:此方法用于通过提交表单或使用“用户名”对“登录 url”执行 GET 请求来完成身份验证的网站/webapp /password' 一对身份验证凭据。 基于 JSON 的身份验证:此方法用于通过使用“用户名/密码”对向“登录 url”提交 JSON 对象来完成身份验证的网站/网络应用程序身份验证凭据。 基于脚本的身份验证:此方法对于身份验证较为复杂且一些处理身份验证过程的自定义脚本很有用的网站/Web 应用程序很有用。要使用此方法,您必须首先定义一个身份验证脚本,该脚本根据您的 Web 应用程序的需要发送消息或执行其他操作。然后选择此脚本用于给定的上下文,并在执行身份验证时调用它。

演示

作为一个例子,我将演示 HTTP/1.1 根据 RFC 1945 使用 URL https://jigsaw.w3.org/HTTP/Basic/ 实现的基本身份验证测试


步骤

按照以下步骤通过 ZAP 实现基本身份验证

打开 ZAP 并打开浏览器,例如Firefox 通过单击图标打开您在快速启动选项卡中选择的浏览器,该浏览器预配置为通过 ZAP 代理

点击Basic Authentication test(webpage 的倒数第三个链接),Basic Authentication 弹出窗口出现。 提供登录凭据: 用户名:访客 密码:访客 现在在 ZAP 工具的“历史记录”选项卡中,找到对 URL https://jigsaw.w3.org/HTTP/Basic/ 的 GET 请求并观察确认的 Response 基本身份验证。 请求快照:

响应快照:

现在您需要创建一个 Context 以将其包含在 Default Context 中。因此右键单击 URL,然后从上下文菜单中选择包含在上下文中,然后选择默认上下文

在“会话管理”菜单中,选择 HTTP 身份验证会话管理

在“身份验证”菜单中,选择 HTTP/NTLM 身份验证并提供主机名和端口。

在“用户”菜单中,添加所需用户的凭据。

点击确定按钮保存配置。 最后,您需要通过从 ZAP 窗格启用它来配置 ZAP 以使用强制用户模式。

双击默认上下文,选择强制用户并确保设置了所需的用户。

现在,选择 URL,右键单击,选择 在浏览器中打开 URL 并选择 Firefox

您将通过 ZAP 自动通过基本身份验证授权。

【讨论】:

以上是关于在 ZAP 工具中添加身份验证以攻击 URL的主要内容,如果未能解决你的问题,请参考以下文章

Owasp zap 中基于标头的身份验证

用于 HTTPS 应用程序的基于表单的身份验证 OWASP ZAP

使用 API 调用的 ZAP 身份验证

在不使用 OpenAPI 或 Swagger 规范的情况下,使用 OWASP ZAP 对 API 进行身份验证

未通过 ZAP API 扫描 docker 映像进行身份验证

我用的是window server 2003系统, 管理工具 计算机管理中:无本地用户和组,如何调出?另用window 身份验...