Web 应用程序渗透测试的四个主要步骤

简介: Web 应用程序渗透测试的四个主要步骤

​在互联网的早期,安全只是一个事后的想法。然后,随着黑客开始利用企业松懈的安全姿态,情况逐渐开始发生变化。起初,像电子前哨基金会这样的非营利组织开始推动网络用户使用 HTTPS Everywhere。作为回应,认证机构开始向任何想要 SSL 证书的站点管理员提供免费的 SSL 证书变体。因此,至少79.6% 的活跃网站现在使用 SSL。

6d5ba5567f65d71265ac6009efaa6dea.jpeg

那只是开始。在接下来的几年里,开发者和 web 应用管理员逐渐开始加强他们的应用来抵御各种各样的攻击。他们推出了更复杂的密码要求。他们开始添加双因素身份验证作为默认措施。他们甚至开始将面向公众的服务置于高性能的 Web 应用防火墙之后。

但是尽管取得了所有的进步,漏洞依然存在,这意味着 web 应用开发者和管理员必须了解如何对他们的系统进行渗透测试,以查看是否有任何已知的漏洞可以穿透他们的多层防御。要做到这一点,他们必须了解渗透测试过程的各个阶段,以避免留下任何安全漏洞。下面是 Web 应用程序渗透测试涉及的四个主要步骤。
步骤1: 观察和侦察

Web 应用程序渗透测试过程中的第一个重要步骤涉及采取与攻击者相同的策略: 尽可能地了解目标。首先要做的是从谷歌这样的公共网站上收集目标网络应用的信息。使用搜索修饰符,可以收集与应用程序相关的子域名和页面的完整列表。这为黑客必须处理的潜在攻击提供了一个相当不错的地图。

接下来要做的是使用像 Nmap 这样的网络扫描仪来收集特定于 web 应用程序本身的数据。其思想是弄清楚有多少关于软件和服务器的信息对外部世界是可见的。然后,使用像 Burp Suite 这样的安全测试软件进行全面扫描,应该可以显示从服务器软件版本到应用程序环境的所有信息。
步骤2: 漏洞研究和攻击

Web 应用程序渗透测试过程的下一个主要步骤是使用收集的数据开始缩小可尝试利用的漏洞列表。换句话说,如果您发现攻击者可以告诉您正在使用某个特定的 Apache 和 PHP 版本,那么您应该开始寻找这些版本中已知的漏洞,以便尝试利用它们。

幸运的是,一些伟大的开源渗透测试工具可以自动化一些工作。您可以根据所检查的漏洞类型从中进行选择。受欢迎的选择包括:

- W3af
- Metasploit
- SQLMap
- Hydra 九头蛇

其思想是尝试找到每一个潜在的可利用的漏洞,并将找到的漏洞编目。如果可能的话,最好使用这些漏洞模拟攻击,以了解恶意行为者利用这些漏洞能走多远。

步骤3: 目录和报告

该过程的下一步是创建一个报告,该报告详细说明在前两个步骤中找到的所有内容。这个想法是创建一个中央知识库,整个开发团队可以将其作为修复问题的路线图。这就是您在攻击模拟中收集的数据将派上用场的地方。

报告应该根据漏洞的严重程度对它们进行分类。有各种公开可用的示例渗透测试报告,您可以使用它们来开发适合您需要的格式。这样的话,关闭所有安全漏洞的工作就更容易分清主次了。如果您正在处理一个已经在运行的应用程序,那么这是一个绝对关键的步骤。请记住,您发现的漏洞可能已经在黑客的雷达上,所以您越快修补严重的漏洞越好。
步骤4: 修补和重复

最后一步是审阅渗透测试报告,并开始解决其中确定的漏洞。对于一个已经存在的应用程序,最好从应用尽可能多的权宜之计开始。这些可能包括改变网站访问规则在你的网页应用层防火墙或采取特别脆弱的部分你的应用离线。

然后,继续决定报告中漏洞的最佳可能修复方案。从最严重的问题开始,简单地检查每个问题,因为它已经修复,同时仔细记录下修复是什么,以及它们可能影响应用程序的其他部分。这将帮助您知道在哪里集中于您的下一轮测试,您将不得不在完成补救工作之后开始。
创建一个硬目标

通过重复上述过程,直到没有漏洞被发现,Web 应用程序开发人员和管理员可以合理地保证,他们不是一个坐以待毙的鸭子,等待攻击。当然,这只是针对已知的漏洞,因此这个过程不会使攻击变得不可能,只是不太可能。在不断变化的网络安全环境中,这通常是人们所能期望的最好结果。请记住,不久以前,SSL 和复杂的密码还是 Web 应用程序安全的最终目标,因此持续的警惕将永远是真正安全的代价。​

相关文章
|
1月前
|
NoSQL 安全 测试技术
接口测试用例设计的关键步骤与技巧解析
该文介绍了接口测试的设计和实施,包括测试流程、质量目标和用例设计方法。接口测试在需求分析后进行,关注功能、性能、安全等六项质量目标。流程包括网络监听(如TcpDump, WireShark)和代理工具(Charles, BurpSuite, mitmproxy, Fiddler, AnyProxy)。设计用例时,需考虑基本功能流程、输入域测试(如边界值、特殊字符、参数类型、组合参数、幂等性)、线程安全(并发和分布式测试)以及故障注入。接口测试用例要素包括模块、标题、优先级、前置条件、请求方法等。文章强调了保证接口的幂等性和系统健壮性的测试重要性。
52 5
|
2天前
|
Java 应用服务中间件 Apache
安装和配置Apache Tomcat是部署Java Web应用程序的常见任务
安装和配置Apache Tomcat是部署Java Web应用程序的常见任务
17 7
|
4天前
|
XML 开发框架 .NET
【已解决】请在位于当前 Web 应用程序根目录下的“web.config”配置文件中创建一个 <customErrors> 标记
【已解决】请在位于当前 Web 应用程序根目录下的“web.config”配置文件中创建一个 <customErrors> 标记
7 1
|
23天前
|
JavaScript 前端开发
基于 Node.js 环境,使用内置 http 模块,创建 Web 服务程序
基于 Node.js 环境,使用内置 http 模块,创建 Web 服务程序
|
24天前
|
存储 人工智能 应用服务中间件
Web应用是一种通过互联网浏览器和网络技术在互联网上执行任务的计算机程序
【5月更文挑战第30天】Web应用是一种通过互联网浏览器和网络技术在互联网上执行任务的计算机程序
30 2
|
5天前
|
安全 编译器 PHP
PHP 8 的新特性与优化——构建更高效的Web应用程序
PHP 8 是最新的PHP版本,它引入了一系列令人激动的新特性和优化,为开发者提供了更多的工具和功能来构建高效的Web应用程序。本文将介绍PHP 8的一些重要特性,包括 JIT 编译器、新的数据结构、类型系统改进以及错误处理的增强。我们还将探讨如何利用这些新特性和优化,提升Web应用程序的性能和可维护性。
16 0
|
18天前
|
XML JSON API
RESTful API关键部分组成和构建web应用程序步骤
RESTful API关键部分组成和构建web应用程序步骤
14 0
|
1月前
|
存储 安全 数据安全/隐私保护
Web应用程序的会话管理是一种跟踪和识别特定用户与Web服务器之间交互的技术
【5月更文挑战第12天】Python Web开发中,会话管理用于跟踪用户与服务器交互,如Flask框架提供的内置功能。以下是一个简单示例:安装Flask后,设置应用密钥,通过session读写用户状态。例如,创建一个显示和设置用户名称的Web应用,用户提交的名字将保存在会话中。在生产环境中,应安全存储密钥,如使用环境变量。扩展会话管理可借助第三方库实现更多功能,但可能需更多配置。
228 2
|
24天前
|
分布式计算 Java 测试技术
Spark 单元测试报Error:(26, 16) java: 程序包sun.misc不存在
Spark 单元测试报Error:(26, 16) java: 程序包sun.misc不存在
21 0
|
1月前
|
安全 测试技术 API
API 渗透测试 4 个关键步骤
【5月更文挑战第17天】API渗透测试的四个关键步骤:信息收集、漏洞发现、漏洞利用和报告撰写。