Google Gruyere:Web应用程序的攻击和防御

2020-05-18 01:51:31

此代码实验室显示了如何利用Web应用程序漏洞以及如何防御这些攻击。最好的学习方式就是实践,这样你就有机会做一些真实的渗透测试,实际上是在利用真实的应用程序。具体地说,您将了解以下内容:

如何使用常见的Web安全漏洞(如跨站点脚本漏洞(XSS)和跨站点请求伪造(XSRF))攻击应用程序。

如何查找、修复和避免这些常见漏洞和其他具有安全影响的错误,例如拒绝服务、信息泄露或远程代码执行。

要充分利用本实验,您应该熟悉Web应用程序的工作原理(例如,HTML、模板、Cookie、AJAX等的一般知识)。

这个codelab是围绕gruyere/ɡruːˈjɛər/构建的,这是一个小而俗气的Web应用程序,允许用户发布文本片段和存储各种文件。不幸的是,Gruyere有多个安全缺陷,从跨站点脚本和跨站点请求伪造,到信息泄露、拒绝服务和远程代码执行。这个代码室的目标是引导您发现其中的一些错误,并学习如何在Gruyere和一般情况下修复它们。

代码实验室按漏洞类型进行组织。在每个部分中,您将找到漏洞的简要描述,以及在Gruyere中查找该漏洞实例的任务。您的工作是扮演恶意黑客的角色,找到并利用安全漏洞。在这个代码室中,您将同时使用黑盒黑客和白盒黑客。在黑匣子黑客中,您可以尝试通过试验应用程序、操作输入字段和URL参数、尝试导致应用程序错误以及查看http请求和响应来猜测服务器行为,从而找出安全缺陷。您没有访问源代码的权限,但是了解如何查看源代码并能够查看Http头文件(就像在Chrome或LiveHTTPHeaders for Firefox中一样)是很有价值的。使用类似网络代理的Burpor ZAP可能有助于创建或修改请求。在白盒黑客攻击中,您可以访问源代码,并可以使用自动或手动分析来识别错误。您可以将Gruyere视为开放源代码:您可以通读源代码来尝试查找错误。Gruyere是用Python编写的,熟悉Python会很有帮助。然而,所涵盖的安全漏洞并不是特定于Python的,您甚至不需要查看代码就可以完成实验室的大部分工作。您可以运行Gruyere的本地实例来协助您的黑客攻击:例如,您可以在您的本地实例上创建一个管理员帐户,以了解管理功能是如何工作的,然后将该知识应用于您想要黑客攻击的实例。安全研究人员在现实生活中经常结合使用这两种黑客技术。

我们将对每个挑战进行标记,以指明需要哪些技术来解决它们:仅使用黑盒技术就可以解决的挑战。需要您查看Gruyere源代码的挑战。需要格鲁耶尔的一些具体知识的挑战,这些知识将在第一个提示中给出。警告:在许多司法管辖区,未经授权访问或攻击计算机系统是非法的。在执行此codelab时,您将被特别授权按照指示攻击Gruyere应用程序。除本代码实验室中描述的以外,您不得以其他方式攻击Gruyere,也不得直接攻击AppEngine或任何其他Google服务。您应该使用从代码实验室中学到的知识来使您自己的应用程序更加安全。您不应该使用它来攻击除您自己的应用程序之外的任何应用程序,并且只有在获得相应权威机构(例如,您公司的安全团队)的许可后才能这样做。

Continue>;>;©Google 2017服务条款本代码实验室的代码部分受知识共享署名许可-本代码的任何衍生作品3.0美国许可<;https://creativecommons.org/licenses/by-nd/3.0/us>;.Brief摘录不得用于教育或教学目的,前提是本通知保持完整。除另有说明外,本代码实验室的其余部分受知识共享署名3.0美国许可<;https://creativecommons.org/licenses/by/3.0/us>;.许可。