返回介绍

3.2 Web 攻击简介 - 网络空间猫

发布于 2024-10-13 11:41:06 字数 2845 浏览 0 评论 0 收藏 0

完成侦察和探测后,您需要回顾和分析找到的所有各类站点。查看结果,未发现存在漏洞或者配置错误的应用程序。没有任何 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 应用程序使用的模式。

0303

图 3.3

Express 是采用 Node.js 语言的小型化网站框架。Express 为网站和移动应用程序提供了一组强大的功能,您无须做很多事情。使用名为 Middlewares 的模块可以添加第三方认证或服务,例如 Facebook 认证或者 Stripe 支付处理服务。

Pug 的正式名称为 Jade,是一种服务器端模板引擎,您可以(但不必)与 Express 一起使用。Jade 在服务器上自动生成 HTML 并将其发送到客户端。

我们开始模拟攻击聊天支持系统,首先启动聊天支持系统虚拟机。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文