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 应用程序安全的最终目标,因此持续的警惕将永远是真正安全的代价。​

相关文章
|
6天前
|
分布式计算 Java 测试技术
Spark 单元测试报Error:(26, 16) java: 程序包sun.misc不存在
Spark 单元测试报Error:(26, 16) java: 程序包sun.misc不存在
14 0
|
18天前
|
JavaScript Java 测试技术
《手把手教你》系列技巧篇(四十六)-java+ selenium自动化测试-web页面定位toast-下篇(详解教程)
【5月更文挑战第10天】本文介绍了使用Java和Selenium进行Web自动化测试的实践,以安居客网站为例。最后,提到了在浏览器开发者工具中调试和观察页面元素的方法。
29 2
|
19天前
|
Web App开发 JavaScript 测试技术
《手把手教你》系列技巧篇(四十五)-java+ selenium自动化测试-web页面定位toast-上篇(详解教程)
【5月更文挑战第9天】本文介绍了在Appium中处理App自动化测试中遇到的Toast元素定位的方法。Toast在Web UI测试中也常见,通常作为轻量级反馈短暂显示。文章提供了两种定位Toast元素的技巧.
21 0
|
20天前
|
存储 人工智能 测试技术
python自动化测试实战 —— CSDN的Web页面自动化测试
python自动化测试实战 —— CSDN的Web页面自动化测试
|
20天前
|
存储 安全 数据安全/隐私保护
Web应用程序的会话管理是一种跟踪和识别特定用户与Web服务器之间交互的技术
【5月更文挑战第12天】Python Web开发中,会话管理用于跟踪用户与服务器交互,如Flask框架提供的内置功能。以下是一个简单示例:安装Flask后,设置应用密钥,通过session读写用户状态。例如,创建一个显示和设置用户名称的Web应用,用户提交的名字将保存在会话中。在生产环境中,应安全存储密钥,如使用环境变量。扩展会话管理可借助第三方库实现更多功能,但可能需更多配置。
223 2
|
20天前
|
安全 测试技术 持续交付
在Python Web开发中,测试是一个至关重要的环节
【5月更文挑战第12天】在Python Web开发中,测试至关重要,包括单元测试(unittest模块)、集成测试、功能测试、系统测试、验收测试、性能测试、安全测试和端到端测试。常用的测试工具有unittest、pytest、selenium、requests和coverage。遵循“测试先行”和“持续集成”原则,确保代码质量与稳定性。
149 3
|
9月前
|
安全 Linux 测试技术
如何使用Kali Linux进行渗透测试?
如何使用Kali Linux进行渗透测试?
291 0
|
前端开发 Linux 网络安全
kali linux 网络渗透测试学习笔记(一)Nmap工具进行端口扫描
一.利用Nmap扫描网站服务器的端口开放情况首先打开我们的kali linux才做系统,再打开其命令行模式,输入:nmap www.csdn.net 如下图所示:   因此,通过这个结果可以表明csdn上的端口开放了80端口以及443端口吗,这两个端口都十分重要,因为80端口适用于给用户呈现出数据,给用户看网站用的,443端口也是一个比较重要的端口。
2203 0
|
20天前
|
网络协议 网络安全 Go
Kali下安装渗透测试常用工具dnsx和dirsearch
Kali下安装渗透测试常用工具dnsx和dirsearch
132 0
|
20天前
|
安全 Linux 测试技术
深入Kali Linux:高级渗透测试技术详解
深入Kali Linux:高级渗透测试技术详解
239 0

热门文章

最新文章