Open Web Application Security Program (OWASP) 是一个非营利性在线组织,专注于传播有关企业应用程序安全问题的信息和意识,并为企业应用程序安全评估创建指南和工具。
在过去的几年里,它已成为 IT 安全的参考社区之一,分享有关该主题的最佳实践和免费文档。
它最受欢迎的文档之一是“十大 Web 应用程序漏洞”,它列出并描述了 Web 应用程序最关键的安全风险,我基于该文档进行了分析。
考虑到这一点,我想分析网站漏洞,包括被动攻击和主动攻击。
被动攻击用于通过检查其页面源代码、搜索有用的关键字、分析流量和网站位置来收集有关网站的信息。他们只会在不影响其功能的情况下向目标网站生成虚假请求。
尽管被动扫描本质上并不危险,但建议与 parsimonia 一起使用,因为它可能导致目标网站处理额外的请求数量,并导致攻击者的临时/永久阻止。出于我的学习目的,我实施的被动攻击不符合这两种情况。
另一方面,对网站的主动攻击可能会损害其功能。因此,我建立了一个自己的目标网站来测试它,尝试复制每个 OWASP 10 漏洞,以便分析它们并了解它们通常来自哪里以及如何缓解它们。
为此,在市场上可用的免费/开源工具中,我选择了两个最广泛和最完整的安全评估工具:ZAP 和 W3af。
ZAP(Zed Attack Proxy - zaproxy.org)是许多与软件安全相关的 OWASP 产品之一。
它充当用户浏览器和网络之间的代理,因此它既可以拦截请求/响应消息期间交换的数据包流量,也可以直接攻击目标应用程序。除了代理之外,它还提供了大量的功能,例如模糊器、蛮力、蜘蛛等。因此,它对我的目的来说是一个有用的工具,因为它可以用来执行 Web 应用程序的渗透测试和漏洞评估,引入了一个强大且易于使用的工具。它是开源的,并在过去几年中获得了用户的各种奖项。
有关 ZAP 用法的更多详细信息,请参见 此处。
W3af(Web 应用程序附加和审计框架 - w3af.org)与 ZAP 类似,是一个开源工具,具有丰富的功能集和活跃的社区。
它基于三个主要模块:
用户还可以通过创建新的自定义插件来扩展 W3af。
更多关于 W3af 的细节可以在 这里找到。
被动分析有助于通过了解存在哪些漏洞以及可以从您的网站嗅探哪些信息来保护您的网站。除了从安全角度来看,它还可以通过向目标网站发送大量请求来解决性能问题。
在本次评估中,被动分析是通过向流行且强大的网站发送少量请求来执行的,其唯一目的是检查工具的潜力以及它们可以收集哪些信息。
这些工具引发的漏洞都是次要的或信息丰富的。
仅举几例提出的:
未设置 X-Frame-Options 标头。X-Frame-Options 可用于响应的 HTTP 标头中,以指示是否应允许浏览器在frame中呈现页面。此漏洞可用于点击劫持攻击,在这种攻击中,用户被刺激点击与他从网站上看到的不同的按钮,并被迫执行意外操作。
没有 HttpOnly 标志的 Cookie 集。HttpOnly 是包含在 Set-Cookie HTTP 响应标头中的附加标志,可防止通过客户端脚本访问 cookie,并且在跨站点脚本 (XSS) 的情况下,浏览器会将它们隐藏给第三方。
浏览器中的密码自动完成。具有本地访问权限的攻击者可以从浏览器缓存中获取文本密码,因此应禁用密码自动完成,例如,通过Html 输入标签的选项自动完成。
缺少 X-Content-Type-Options 标头。HTTP 'X-Content-Type-Options' 响应标头可防止浏览器通过 MIME 嗅探远离声明的内容类型的响应,如果服务器未正确返回它,则网站可能面临 XSS 攻击的风险。
另一方面,主动攻击分析作为测试用例可能非常有用,可用于了解您的网站是否足够强大,至少可以防止 OWASP 突出显示的主要漏洞或工具支持的漏洞。
这种类型的攻击可能会永久危害网站,因此需要创建一个我们想要评估为目标的应用程序的单独克隆,并将其用于安全分析。
对于主动分析,给定网站的初始根 URL,这些工具在内部构建带有链接和节点的图,并向找到的每个节点发送请求。图的节点是用作目标攻击的 URL 列表。每个 URL 都会收到多次攻击以检查不同的漏洞。
最后,该工具会返回发现的漏洞列表、每个漏洞的详细信息、解释以及找到可能解决方案的链接。
市场上有许多强大的工具可以执行渗透测试,无论是开源的还是商业许可的。有些工具比其他工具更完整,但一般来说,它们涵盖的漏洞数量有限,并且可能以不同的方式处理它们。
使用多种工具可以提高评估的准确性和完整性。例如,在目前的评估中,ZAP 和 W3af 具有相似的能力,但是:ZAP 通常更完整且易于使用,而 W3af 更准确地发现 XSS 漏洞(反射和存储)。一起使用它们可以执行更强大的分析。