65.9K
CodeProject 正在变化。 阅读更多。
Home

Acunetix WVS – 审计您的网站安全性

starIconstarIconemptyStarIconemptyStarIconemptyStarIcon

2.00/5 (1投票)

2014年9月29日

CPOL

10分钟阅读

viewsIcon

23775

Acunetix WVS 通过运行一系列测试来审核您的网站安全。然后,它会提供一份关于发现问题的简洁报告。它不仅能做到这一点,还会建议您需要进行哪些更改来修复发现的问题。

引言

Acunetix WVS – 我一直在关注 Acunetix Web Vulnerability Scanner 及其提供的出色功能。作为一名软件开发者,我绝对能看到我们这一行的人能从中获益。 Acunetix WVS 通过运行一系列测试来审核您的网站安全。然后,它会提供一份关于发现问题的简洁报告。它不仅能做到这一点,还会建议您需要进行哪些更改来修复发现的问题。

Acunetix WVS – 执行扫描

所以,我通常喜欢直接上手尝试软件,而不会事先阅读大量文档或教程。我这样做是为了评估从一开始就能轻松上手软件的程度。 Acunetix WVS 非常直观,功能丰富。我在导航和执行第一次扫描时没有任何麻烦。

但在我能进行扫描之前,我需要找到一个网站来扫描。有一些在线网站就是为此目的而设计和发布的,但我想要采取一种不同的方法。我决定创建一个小型 ASP.NET Web 应用程序,其中包含一个登录表单,该表单会重定向到另一个页面。从下面的代码可以看出,登录逻辑是一个真正的亮点。它到处都充满了 SQL 注入的痕 angg。不幸的是,这是我有时仍然在支持的遗留系统中经常看到的问题。

我显然没有遵守这个 ASP.NET 网站的任何最佳实践。这段代码会以错误的方式构建 SQL 查询,并检查用户是否存在于数据库中。然后我将其发布到我的本地主机。如果您想快速了解如何做到这一点,请查看这个简短的教程: 使用 Visual Studio 2012 从 IIS 发布网站 (作者:Richard Wilkinson)。

开始新扫描很容易。在这里,我选择扫描单个网站。这是我创建并发布到本地主机的 Web 应用程序。

然后,扫描向导会要求我选择一个扫描配置文件。Acunetix WVS 提供了几个您可以选择的配置文件。您还可以创建自己的自定义配置文件并在扫描期间选择它们(稍后将详细介绍)。对于我的 Web 应用程序,我只想测试盲 SQL 注入漏洞(请参阅下方关于默认扫描配置文件的部分)。

Acunetix WVS 支持多种 Web 技术。它通常会从您之前提供的 URL 中检测到正确的技术。鉴于我创建了一个 ASP.NET 应用程序,它已经默认正确选择了正确的技术。对某些人来说这可能听起来很奇怪,但产品中内置的这种智能可以大大提升用户体验的流畅度。

因为我有一个登录页面,所以我可以创建一个新的登录序列,该序列将被保存为登录序列文件。我还可以指定网站的哪些部分我不想抓取(例如登出链接)。

将登录序列记录器指向登录页面,然后单击“下一步”。

然后您输入登录详细信息,并允许页面进行登录。正如您所见(有意双关),我的密码非常安全。

保存登录序列后,扫描向导将开始扫描。根据需要运行的脚本数量,扫描可能需要一段时间。

Acunetix WVS – 扫描结果

扫描完成后,正如预期的那样,Acunetix WVS 将盲 SQL 注入漏洞标记为“关键”。漏洞的严重性使用颜色编码:红色表示严重,橙色表示中等,绿色表示信息。

这就是该产品的真正亮点。如果我单击扫描结果中 SQL 注入的特定条目,我会在右侧的窗格中看到详细的描述。它还详细介绍了该漏洞的影响以及如何修复该漏洞。请看下面的截图。






根据对盲 SQL 注入漏洞的详细描述,我决定修改我的 SQL 查询。我将使用参数而不是内联 SQL。

默认扫描配置文件

我只想在这里强调一点,那就是默认扫描配置文件。它绝不比其他任何配置文件功能差。事实上,它是最完整的,并且会扫描所有内容。它还会发现我的简单密码以及其他一些问题。

Acunetix WVS – 修复代码

在我的 UserLogin 方法中,我修改 SQL 以不包含任何内联变量。我将 SQL 更改为接受参数,然后将这些参数连接到 SQL Command 对象并通过这种方式传递变量。服务器上的存储过程可能更好,但我只是想快速修改代码来向您展示更改。代码更改后,我只需重新发布 Web 应用程序。

重新运行扫描非常简单,只需右键单击扫描并选择“重新测试警报”。Acunetix WVS 会立即开始扫描,并扫描先前生成的警报。这次扫描显然更快,因为它只测试了上次扫描生成的警报。

然后,Acunetix 会用删除线字体标记所有已修复的警报。正如您所见,我对代码中的 SQL 查询所做的更改解决了 SQL 注入漏洞。

从这里开始,您可以保存扫描结果,更重要的是,为开发人员生成极其详细的报告。

Acunetix WVS – 生成报告

单击主菜单上的“Reporter”按钮将启动一个名为 Acunetix WVS Reporter 的独立应用程序。

当 Acunetix WVS Reporter 加载时,您会注意到可以生成的报告类型。您显然会倾向于为负责修复未发现漏洞的开发人员提供开发人员报告。执行摘要报告更适合管理层,并且仅包含已发现漏洞的高级概述。

导航到“Database Explorer”节点,您将看到我列出的两个扫描。

您也可以通过右键单击数据库条目并单击“Generate Report”链接,直接从数据库条目中生成特定扫描的报告。

返回 Acunetix WVS,我也可以通过单击工具栏上的“Report”按钮为特定扫描生成报告。

我的一位教授曾经说过,您开发的系统将永远只与其生成的报告一样好。即使功能丰富,但如果用户无法从中提取任何信息,该应用程序也将无济于事。Acunetix WVS 在这方面丝毫不会让人失望。您可以自定义报告的封面页,添加自己的徽标和报告标题(仅在某些版本中可用),使生成的报告更加出色。

Acunetix WVS – 将扫描结果保存到 SQL

默认情况下,扫描结果生成的所有数据都存储在 Access 数据库中。这是我从一开始就决定更改为自己的 SQL Server 的。这样做也很容易。导航到“Configuration -> Application Settings -> Saved Scan Results”并将数据库类型更改为 SQL Server。

您需要预先创建一个空白数据库来存储您的扫描结果。单击“Apply changes”后,Acunetix 将创建所需的表。

您可以选择不创建数据库表,这显然是在连接到已创建的扫描数据库时。

在 SQL Server Management Studio 中查看数据库结构,您可以看到创建了几个表。

这样,您就可以将扫描数据库作为常规 SQL Server 备份策略的一部分进行备份了。

Acunetix WVS – 更新

更新 Acunetix WVS 也是一项非常容易的任务。帮助菜单下有一个选项可以运行一个工具来检查您的 Acunetix WVS 安装是否有任何补丁或新版本。更新和应用补丁的过程非常顺畅,并且可以轻松地直接在产品内部进行管理。

无需离开产品即可单击 .exe 文件来安装更新或应用补丁。这是提升整体用户体验的另一个绝佳补充,并且增加了易用性的感觉。

Acunetix WVS – 配置文件

最后,我想谈谈扫描配置文件。如果您还记得扫描向导,我们能够从几个扫描配置文件中进行选择。如果您转到“Configuration -> Scanning Profiles”,您将看到每个配置文件测试的内容。

测试屏幕还有一个非常有用的过滤器。我决定检查一个更严重且新发现的(谢天谢地已修补)漏洞……Heartbleed Bug。您可以在 这里 阅读更多内容,但这是一个非常棘手的漏洞。Acunetix 已经涵盖了这一点,因为测试脚本包含在默认扫描配置文件和 High_Risk_Alerts 配置文件中。

如果您更改配置文件,您会注意到扫描期间执行的测试会发生变化。有些会被省略。

现在假设您想创建自己的自定义配置文件,Acunetix 可以直接提供此功能。单击工具栏上的“Create a new profile”按钮。

既然我们刚刚提到了 Heartbleed bug,我想创建一个只运行一个测试的配置文件。

我只需要在新配置文件对话框中输入一个合适的名称,然后单击“OK”按钮,它就会出现在配置文件列表中。

现在您可以勾选/取消勾选您想在新配置文件中包含的测试。完成后,单击“Save new profile”按钮。

下次进入扫描向导时,您将看到您的自定义扫描配置文件已列在扫描配置文件列表中。

这使得根据您的具体需求和情况轻松创建自己的扫描配置文件变得非常容易。

Acunetix WVS – 备份配置文件

在您将 Acunetix WVS 配置为最适合您的方式后,您可能希望考虑备份所需的设置文件,例如扫描配置文件。Acunetix WVS 允许您通过转到“Help”菜单并单击“Application Directories”菜单项来执行此操作。这将为您打开 Windows Explorer,显示应用程序目录的位置,您可以然后进行备份。

AcuSensor 技术

这项新技术比传统的 Web 应用程序扫描(.NET 和 PHP)做得更多。它会准确指示代码中的漏洞位置(具体到代码行),并报告调试信息。AcuSensor 不需要 .NET 源代码,因为它也可以注入到已编译的 .NET 应用程序中。

由于 AcuSensor 提供了有关检测到的漏洞的更多信息,因此它减少了误报。我没有在我上面创建的 Web 应用程序上使用此技术,仅仅是因为我的 Web 应用程序很小,并且我想专注于一个特定的漏洞。

最后的想法

Acunetix 还包含一组手动渗透测试工具。这些工具供渗透测试人员使用,但开发人员也可以使用它们来调试某些漏洞。其中大多数手动渗透测试工具都可以从扫描结果中调用。例如,我本可以使用盲 SQL 注入工具来测试 SQL 注入漏洞。

关于 Acunetix WVS 还有很多可以写的内容,这会让这篇博文比我预期的要长得多。内容实在是太多了。我希望我已经对 Acunetix WVS 为安全专业人士和开发人员提供的令人惊叹的功能进行了广泛的概述。Acunetix 除了我上面介绍的可下载版本外,还有一个在线漏洞扫描器。真正掌握该产品的唯一方法是 下载 14 天试用版 并亲自尝试一下。您绝对不会失望的。

© . All rights reserved.