实验设置说明和要求
保护您的账号和进度。请务必在无痕浏览器窗口中,使用实验凭证运行此实验。

识别漏洞与修复方法

实验 1 小时 30 分钟 universal_currency_alt 5 个点数 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
此内容尚未针对移动设备进行优化。
为获得最佳体验,请在桌面设备上访问通过电子邮件发送的链接。
重要图标 重要提示

桌面设备/笔记本电脑图标请务必仅在桌面设备/笔记本电脑上完成此实操实验。

勾选图标 每个实验仅允许尝试 5 次。

测验目标图标温馨提示:第一次尝试时,您可能无法答对所有问题,甚至可能需要重做任务,请不必担心,这都是学习过程的一部分。

计时器图标 实验一旦开始,计时器就无法暂停。1 小时 30 分钟后,实验将结束,您需要重新开始。

提示图标 如需了解详情,请阅读实验技术提示

活动概览

识别漏洞并实施修复技术对于帮助确保各种系统和应用的安全性和稳定性至关重要。许多应用和系统都会处理敏感信息,例如个人身份信息、财务记录或知识产权。识别漏洞有助于保护这些敏感数据,防止未经授权的访问和潜在的数据泄露。在开发过程早期解决漏洞,通常比在后期处理安全漏洞更节省成本。修复漏洞的成本通常远高于预防漏洞的成本。

作为一名安全分析师,定期扫描漏洞有助于在恶意攻击发生之前发现并解决漏洞,从而主动缓解潜在威胁。漏洞扫描可深入分析应用的攻击面,帮助您了解潜在的攻击途径,并确定需要优先改进的关键领域。

在本实验中,您将学习如何设置和运行易受攻击的应用,并扫描该应用中的漏洞。

场景

Cymbal Bank 为其企业客户开发了一款新的银行应用,该应用将托管并部署在新的云基础设施上。首席信息安全官 Javier 希望在应用发布给客户之前,优先处理其安全性问题。您的团队负责人 Chloe 指派您负责识别并缓解此应用的所有漏洞。您将使用 Google Cloud 中的 Web Security Scanner 扫描应用,查找与 OWASP® 十大 Web 应用漏洞之一,跨站脚本攻击 (XSS) 相关的漏洞。

下面介绍如何完成此任务:首先,您需要创建一个静态 IP 地址并启动虚拟机。然后,您需要部署存在漏洞的应用。接下来,您需要设置并运行该应用。然后,您将访问并扫描该应用。最后,您将修复漏洞并重新扫描应用。

设置

点击“开始实验”之前

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。

此实操实验可让您在真实的云环境中开展活动,免受模拟或演示环境的限制。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。

为完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
  • 完成实验的时间 - 请注意,实验开始后无法暂停。
注意:如果您已有自己的个人 Google Cloud 账号或项目,请不要在此实验中使用,以避免您的账号产生额外的费用。

如何开始实验并登录 Google Cloud 控制台

  1. 点击开始实验按钮。左侧是实验详细信息面板,其中包含以下各项:

    • 剩余时间
    • 打开 Google Cloud 控制台按钮
    • 进行该实验时必须使用的临时凭证
    • 帮助您逐步完成本实验所需的其他信息(如果需要)
    注意:如果该实验需要付费,系统会打开一个弹出式窗口供您选择支付方式。
  2. 如果您使用的是 Chrome 浏览器,点击打开 Google Cloud 控制台(或右键点击并选择在无痕式窗口中打开链接)。系统会在新的浏览器标签页中打开登录页面。

    提示您可以将这些标签页分别放在不同的窗口中,并排显示,以便轻松切换。

    注意:如果您看到选择账号对话框,请点击使用其他账号
  3. 如有必要,请复制下方的 Google Cloud 用户名,然后将其粘贴到登录对话框中。点击下一步

{{{user_0.username | "Google Cloud username"}}}

您也可以在实验详细信息面板中找到 Google Cloud 用户名

  1. 复制下面的 Google Cloud 密码,然后将其粘贴到欢迎对话框中。点击下一步
{{{user_0.password | "Google Cloud password"}}}

您也可以在实验详细信息面板中找到 Google Cloud 密码

重要提示:您必须使用实验提供的凭证。请勿使用您的 Google Cloud 账号凭证。 注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
  1. 依次点击后续页面,完成以下步骤:
    • 接受条款及条件
    • 由于这是临时账号,请勿添加账号恢复选项或双重验证
    • 请勿用其注册免费试用服务

片刻之后,系统会在此标签页中打开 Google Cloud 控制台。

注意:您可以点击左上角的导航菜单来查看列有 Google Cloud 产品和服务的菜单。Google Cloud 控制台菜单,其中突出显示了导航菜单图标

任务 1. 启动虚拟机

在此任务中,您将创建一个静态 IP 地址并启动虚拟机来运行存在漏洞的应用。

  1. 在 Google Cloud 控制台标题栏中,点击激活 Cloud Shell (“激活 Cloud Shell”图标) 图标。如果出现提示,点击继续
  2. 将以下命令复制到 Cloud Shell 终端中:
gcloud compute addresses create xss-test-ip-address --region={{{project_0.default_region | "REGION"}}}

此命令会在 区域中创建一个名为 xss-test-ip-address 的静态 IP 地址。此静态 IP 将用于扫描存在漏洞的 Web 应用。

  1. ENTER 键。

如果出现提示,请点击授权

  1. 将以下命令复制到 Cloud Shell 终端中:
gcloud compute addresses describe xss-test-ip-address \ --region={{{project_0.default_region | "REGION"}}} --format="value(address)"

此命令会返回您生成的静态 IP 地址。

  1. ENTER 键。
  2. 从输出中复制 IP 地址,并将其保存到记事本中。您将在后续任务中用到它。
  3. 将以下命令复制到 Cloud Shell 终端中:
gcloud compute instances create xss-test-vm-instance --address=xss-test-ip-address --no-service-account \ --no-scopes --machine-type=e2-micro --zone={{{project_0.default_zone | "ZONE"}}} \ --metadata=startup-script='apt-get update; apt-get install -y python3-flask'

此命令会创建一个虚拟机实例来运行存在漏洞的应用。

  1. ENTER 键。
注意:启动脚本将安装 python-flask(一个 Web 应用框架),用于运行简单的 Python 应用。此应用演示了跨站脚本 (XSS) 漏洞,这是一种常见的 Web 应用安全漏洞。

点击检查我的进度,验证您是否已正确完成此任务。

启动虚拟机

任务 2. 设置并运行存在漏洞的应用

在此任务中,您将下载并提取存在漏洞的应用的 Web 应用文件,然后在浏览器内的 SSH 中部署该应用。

首先,您需要创建一条防火墙规则,允许 Web Security Scanner 访问存在漏洞的应用。

  1. 将以下命令复制到 Cloud Shell 终端中:
gcloud compute firewall-rules create enable-wss-scan \ --direction=INGRESS --priority=1000 \ --network=default --action=ALLOW \ --rules=tcp:8080 --source-ranges=0.0.0.0/0

此命令会创建一条防火墙规则,允许从任何来源 IP 地址访问 Web 应用。这样,Web Security Scanner 就可以访问存在漏洞的应用并执行扫描。

  1. ENTER 键。

接下来,使用 SSH 连接,连接到虚拟机实例。

  1. 在 Google Cloud 控制台中,点击导航菜单 (导航菜单)。
  2. 选择 Compute Engine > 虚拟机实例
  3. 虚拟机实例页面的连接列中,点击测试实例旁边的 SSH 按钮。

这将在新的浏览器窗口中打开与虚拟机实例的 SSH 连接。

  1. 可能会出现一个弹出窗口,询问您是否允许在浏览器中使用 SSH 连接到虚拟机。点击授权

现在,提取 Web 应用文件。

  1. 将以下命令复制到浏览器中的 SSH 页面(而非 Cloud Shell)中:
gsutil cp gs://cloud-training/GCPSEC-ScannerAppEngine/flask_code.tar . && tar xvf flask_code.tar

此命令会下载并提取存在漏洞的 Web 应用文件。

  1. Enter 键。

  2. 最后,将以下命令复制到浏览器中的 SSH 页面中:

python3 app.py

此命令会启动应用。

  1. ENTER 键。

系统应显示一条消息,表明应用已启动并正在运行。

注意:由于这是一个用于开发的 Web 应用,因此配置文件可能存在漏洞。在公共网络上使用任何应用之前,都必须先进行测试。 注意:执行下一项任务时,请勿关闭浏览器中的 SSH 页面,因为应用必须保持运行。

点击检查我的进度,验证您是否已正确完成此任务。

设置并运行存在漏洞的应用

任务 3. 访问存在漏洞的应用

在此任务中,您将测试应用是否存在跨站脚本 (XSS) 漏洞。XSS 漏洞可能会被恶意脚本(例如 HTML 代码)利用,这些脚本会包含在提供给 Web 浏览器的内容中。

  1. 保持应用运行,并打开一个新的浏览器窗口。
  2. 将下面的网址复制到浏览器标签页中,并将 <YOUR_EXTERNAL_IP> 替换为在任务 1 中保存到记事本中的虚拟机静态 IP 地址:
http://<YOUR_EXTERNAL_IP>:8080

Cymbal Bank 的企业银行门户网站应该会显示一个 Web 表单。

  1. 将以下 HTML 代码(包括脚本标记)复制到 Web 表单中:
<script>alert('This is an XSS Injection to demonstrate one of OWASP vulnerabilities')</script>

此代码注入了 OWASP® 漏洞。

Cymbal Bank 演示应用的网页显示了一个包含跨站脚本的 Web 表单

  1. 点击发布

注入的代码在浏览器中显示了一条消息。此操作本身并不存在恶意行为,但攻击者可能会将恶意代码引入可利用的应用,以窃取应用中的数据或在用户的设备上植入恶意软件。

提醒窗口打开,并显示以下消息:“This is an XSS Injection to demonstrate one of OWASP vulnerabilities”(这是一个 XSS 注入,用于演示 OWASP 漏洞)。

任务 4. 扫描应用

在此任务中,您将使用 Web Security Scanner 扫描应用中的漏洞。

首先,启用 Web Security Scanner API。

  1. 在 Google Cloud 控制台中,点击导航菜单 (导航菜单)。
  2. 依次选择 API 和服务 > 已启用的 API 和服务。系统会显示 API 和服务页面。
  3. 点击 + 启用 API 和服务
  4. 在搜索字段中,输入 Web Security Scanner,然后按 Enter 键。
  5. 选择 Web Security Scanner API
  6. 点击启用

现在,扫描应用是否存在漏洞。

  1. 在 Google Cloud 控制台中,依次点击导航菜单 > 查看所有产品 (导航菜单)。
  2. 依次选择安全 > Web Security Scanner

如果启用了 Web Security Scanner API,则 Cloud Web Security Scanner 页面会显示扫描配置的详细信息。

  1. Cloud Web Security Scanner 工具栏中,点击 + 新建扫描

  2. 名称部分,将扫描命名为 Cross-Site Scripting scan

起始网址部分,起始网址 1 字段中应该已经预先填充了您的静态 IP 地址。

  1. 在 IP 地址末尾添加英文冒号和端口号 8080起始网址 1 应类似于以下格式:
http://<YOUR_EXTERNAL_IP>:8080
  1. 删除起始网址 2(如有)。
  2. 排除的网址部分,检查身份验证是否设置为时间安排是否设置为从不。其余字段保持不变。
  3. 点击保存,创建扫描。
  4. 点击运行扫描开始扫描。
  5. 返回浏览器中的 SSH 窗口。

浏览器中的 SSH 窗口中,您应该会看到 Web Security Scanner 测试所有可能网址是否存在潜在漏洞时生成的日志。

  1. 扫描完成后,返回 Google Cloud 控制台。
注意:扫描可能需要 5-10 分钟才能完成。

结果标签页应显示跨站漏洞,演示 Web Security Scanner 如何检测 XSS 漏洞。

您也可以在 Security Command Center 下的漏洞标签页中找到这些漏洞。

点击检查我的进度,验证您是否已正确完成此任务。

扫描应用

任务 5. 修复漏洞

在此任务中,您将修复应用的 XSS 漏洞,在修复后重新运行应用。

修复当前漏洞的建议是验证和转义不受信任的用户提供的数据,此项建议对应相应的 OWASP® 规则。

您需要修改存在漏洞的应用的代码,添加代码行,验证和转义用户提供的数据。

  1. 返回到连接到虚拟机实例的浏览器中的 SSH 页面。
  2. CTRL + C 停止运行的应用。或者,您也可以点击浏览器中 SSH 窗口右上角的发送组合键图标,输入 CTRL + C 组合键。

现在,使用 nano 编辑器修改 app.py 文件。

  1. 将以下命令复制到浏览器中的 SSH 页面:
nano app.py

此命令会打开 nano 代码编辑器。

  1. ENTER 键。

  2. 为了修复 XSS 漏洞,您需要验证输出字符串变量。输出字符串是用户提供的 Web 表单输入的处理结果。

确保应用不接受用户输入作为 HTML 代码,对用户输入中提供的特殊字符进行转义。为此,请找到设置输出字符串的两行代码:

# output_string = "".join([html_escape_table.get(c, c) for c in input_string]) output_string = input_string
  1. 从第一行中移除 # 符号,并将其添加到下一行的开头(确保正确缩进代码)。最后几行必须与以下内容类似:
@app.route('/output') def output(): output_string = "".join([html_escape_table.get(c, c) for c in input_string]) # output_string = input_string return flask.render_template("output.html", output=output_string)
  1. CTRL + X 退出 nano,然后按 Y 保存更改,最后按 ENTER 保存更改。
  2. 将以下命令复制到浏览器中的 SSH 终端中:
python3 app.py

此命令会重新运行应用。

  1. ENTER 键。

点击检查我的进度,验证您是否已正确完成此任务。

修复漏洞

任务 6. 重新扫描 Web 应用

在此任务中,您将重新扫描应用,以确保没有漏洞。

  1. 返回 Google Cloud 控制台中的 Cloud Web Security Scanner 页面。
  2. 点击运行以重新运行扫描。
注意:扫描可能需要 5-10 分钟才能完成。

结果标签页现在应显示未发现任何漏洞。

点击检查我的进度,验证您是否已正确完成此任务。扫描完成后才能完成此任务。

重新扫描 Web 应用

总结

太棒了!

通过本实验,您获得了扫描应用漏洞的实操经验。您了解了安全分析师扫描应用漏洞的重要性,这有助于识别和解决潜在弱点、管理风险、满足合规性要求,以及最终维护稳固的安全态势以保护组织的资产和声誉。

消除安全漏洞并处理弱点,有助于防范潜在攻击,降低安全事件造成的影响,并确保符合行业法规。

在本实验中,您完成了主动信息安全策略的一个基础环节。

结束实验

结束实验之前,请确保您已完成所有任务。准备就绪后,点击结束实验,然后点击提交

结束实验后,您将无法再访问实验环境,也无法再访问您在其中完成的工作成果。

版权所有 2026 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名称和产品名称可能是其各自相关公司的商标。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

使用无痕模式或无痕浏览器窗口是运行此实验的最佳方式。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。