3.2 Web 攻击简介 - 网络空间猫
完成侦察和探测后,您需要回顾和分析找到的所有各类站点。查看结果,未发现存在漏洞或者配置错误的应用程序。没有任何 Apache Tomcat 服务器或者存在 Heartbleed/ShellShock 漏洞的服务器,似乎所有 Apache Strut 及其 CMS 应用程序漏洞都已经被打上补丁了。
此时直觉可能会开始发挥作用,您开始在客户支持系统应用程序中探索。有些东西感觉不对劲,但是从哪里开始呢?
本章中提到的所有攻击方法,都可以在本书自定义的 VMWare 虚拟机中重复实验。虚拟机可以在本书配套资源中免费获得。
设置 Web 演示环境(客户支持系统)。
- 下载本书定制的虚拟机。
- 下载实验的完整命令列表。
- https://github.com/cheetz/THP-ChatSupportSystem/blob/master/lab.txt
- http://bit.ly/2qBDrFo
- 启动并登录虚拟机。
- 虚拟机完全启动后,显示应用程序的当前 IP 地址。您无须登录 VM,也无须提供密码,即可开始查找应用程序漏洞。
- 由于这是在您自己的主机系统上托管的网站应用程序,因此需要在攻击者 Kali 系统上创建主机名记录。
- 在攻击者 Kali 虚拟机上编辑主机文件,通过主机名或者 IP 地址指向被攻击的应用程序。
- gedit/etc/hosts
- 添加以下行,IP 地址指向被攻击的应用程序。
- [存在漏洞应用程序 IPAddr] chat
- 现在,在 Kali 的浏览器中访问 http://chat:3000/。如果一切正常,您应该能够看到 Node.js 自定义漏洞应用程序。
本节的命令和攻击方法可能非常多而且复杂。为了方便起见,我在下面文件中列出了每个实验所需的所有命令。
- https://github.com/cheetz/THP-ChatSupportSystem/blob/master/lab.txt。
3.2.1 红队网站应用程序攻击
本书的前两个版本着重于介绍如何有效地测试网站应用程序,这个版本则有所不同。我们将跳过许多基本的攻击方式,重点介绍现实世界中使用的攻击方式。
由于这是一本实战性很强的书,因此我们不会详细介绍网站应用程序测试的所有细节。但是,这并不意味着所有细节都会被忽略。有一个很好的 Web 应用程序测试信息的资源是 Open Web Application Security Project(OWASP)。OWASP 主要是在应用程序安全性方面引导和教育用户。每隔几年,OWASP 会编制一份常见问题清单并将其发布给公众。由于许多读者都试图进入安全领域,因此我想提醒大家的是,如果您想从事渗透测试工作,那么至少必须知道 OWASP 安全威胁的前十名。您不仅应该知道前十大漏洞是什么,还应能够根据风险的类型举出每个漏洞的例子,并且知道如何发现这些漏洞。现在,让我们来模拟演示如何突破网络空间猫公司。
3.2.2 聊天支持系统实验
将受到攻击的聊天支持系统实验构建为交互式,特点是包括新旧漏洞。正如您看到的,在下面的实验中,我们提供了一个具有聊天支持系统的定制版本的虚拟机。
应用程序本身是用 Node.js 编写的。为何选择 Node?作为渗透测试人员,Node 是发展速度较快的应用程序之一。由于许多开发人员似乎非常喜欢 Node,因此我觉得了解后端代码 JavaScript 运行时存在的安全隐患非常重要。
什么是 Node
Node.js 是一个基于 Chrome 的 V8 JavaScript 引擎,实时运行 JavaScript 代码。由于 Node.js 是事件驱动的非阻塞 I/O 模型,因此具有小巧和高效的特点。Node.js 的包生态系统 NPM 是一个开源库生态系统。
Node.js 的基本功能是允许您在浏览器之外运行 JavaScript。由于 Node.js 具有精简、快速和跨平台的特点,因此它可以通过统一堆栈简化项目。虽然 Node.js 不是网站服务器,但它可以在服务器(您可以用 JavaScript 编程)环境运行,而不只是网站客户端。
其优点包括以下几点。
- 非常快。
- 单线程 JavaScript 环境,可以充当独立的 Web 应用程序服务器。
- Node.js 不是协议,它是一个用 JavaScript 编写的 Web 服务器。
- NPM 目前有近 50 万个免费的、可重用的 Node.js 代码包。
随着 Node.js 在过去几年变得越来越受欢迎,对于渗透测试人员/红队来说,了解要查找的内容以及如何攻击这些应用程序变得非常重要。例如,一位研究人员发现,弱 NPM 凭证使得他能够编辑/发布 13%的 NPM 包。通过依赖链,大约有 52%的 NPM 包容易受到攻击。
在以下示例中,我们的实验将使用 Node.js 语言作为应用程序开发的基础,使用 Express 框架作为 Web 服务器。然后,我们将 Pug 模板引擎添加到 Express 框架中,如图 3.3 所示。这类似于新开发 Node.js 应用程序使用的模式。
图 3.3
Express 是采用 Node.js 语言的小型化网站框架。Express 为网站和移动应用程序提供了一组强大的功能,您无须做很多事情。使用名为 Middlewares 的模块可以添加第三方认证或服务,例如 Facebook 认证或者 Stripe 支付处理服务。
Pug 的正式名称为 Jade,是一种服务器端模板引擎,您可以(但不必)与 Express 一起使用。Jade 在服务器上自动生成 HTML 并将其发送到客户端。
我们开始模拟攻击聊天支持系统,首先启动聊天支持系统虚拟机。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论