作者丨Ariaa Reeds文章源自玩技e族-https://www.playezu.com/185039.html
翻译丨仇凯文章源自玩技e族-https://www.playezu.com/185039.html
策划丨孙淑娟文章源自玩技e族-https://www.playezu.com/185039.html
如果你是 Web 安全专家、Web 渗透测试工程师或 Web 应用开发者,那么本文就是为你量身定制的。本文将从三个方面提供指导:首先,帮助你学习 Web 应用渗透测试技术,并了解相关工具;其次,告诉你如何在 Web 应用中寻找和测试漏洞;最后,指导你如何通过 Web 应用渗透测试技术提升 Web 应用的安全性。文章源自玩技e族-https://www.playezu.com/185039.html
Web 应用渗透测试
Web 应用渗透测试是一种识别和预防 Web 应用安全问题的方法。Web 渗透测试工程师依据自身对漏洞和渗透测试技术的理解,遵循科学的渗透测试流程,使用渗透测试工具识别 Web 应用中的安全风险,这些安全风险很可能被黑客或其他未经授权人员恶意利用。文章源自玩技e族-https://www.playezu.com/185039.html
Web 应用是专门为 Web 服务器设计和开发的程序,例如 Internet 信息服务(IIS)、Apache Tomcat 等。Web 应用的使用场景非常广泛,既可以是基于文本的简单计算器,也可以是类似亚马逊(Amazon)一样复杂的电子商务系统。这些电子商务系统同时运行着身份验证系统、数据库、网站等许多不同的服务。文章源自玩技e族-https://www.playezu.com/185039.html
要完成有效的 Web 应用渗透测试任务,需要具备丰富的 Web 应用技术知识,例如 Web 服务器、Web 应用框架和 Web 编程语言。文章源自玩技e族-https://www.playezu.com/185039.html
Web 应用渗透测试的优势
Web 应用渗透测试是检测 Web 应用漏洞和安全问题最有效的方法。通过 Web 应用渗透测试,能够判断 Web 应用是否存在脆弱性,这通常代表 Web 应用存在可以被黑客或未授权人员恶意利用的漏洞。在安全的环境中对 Web 应用进行渗透测试,可以避免因渗透测试导致的生产系统宕机。这有助于在用户数据遭到破坏之前发现 Web 应用的安全问题,使得我们有足够的时间修复漏洞。Web 应用渗透测试可以帮助 Web 安全专家了解 Web 应用的工作原理、Web 应用的技术实现以及攻击者利用的 Web 应用漏洞类型。这些可以帮助你更好的理解 Web 应用的攻击面,以便制定并实施有效的安全措施。文章源自玩技e族-https://www.playezu.com/185039.html
如何开展 Web 应用渗透测试工作
Web 安全专家使用各种工具和技术在其负责的 Web 应用上执行渗透测试任务。他们同样会制作自定义的测试用例,用来模拟真实世界中对 Web 应用靶标的攻击。文章源自玩技e族-https://www.playezu.com/185039.html
Web 应用渗透测试流程
了解靶标应用的工作原理(例如:靶标应用使用了哪些技术等)。使用自动或手动工具扫描靶标应用,寻找客户端代码(例如 Javascript、Flash 对象、Cookie 等)的漏洞,当发现漏洞后,尝试攻击此漏洞,以便找到造成该漏洞的根本原因,然后尽可能的尝试修复它。文章源自玩技e族-https://www.playezu.com/185039.html
Web 渗透测试人员通常会做的事情
- 遍历 Web 应用目录和 Web 服务器;
- 判断靶标应用及其使用的技术实现(服务器、技术框架)和编程语言;
- 使用 Burp Suite 或 Acunetix 等工具进行手动渗透测试,以发现客户端代码(例如 Javascript、Flash 对象等)的漏洞;
- 使用 Netsparker 或 HP Web Inspect 等自动化工具扫描并识别 Web 服务器和相关技术框架中的已知漏洞。渗透测试人员在手动测试阶段发现的 Web 应用漏洞,也可以使用自动化工具进行攻击利用;
如有必要,对 Web 应用进行源代码分析,以便在 Web 应用部署至 Web 服务器之前,通过添加传入数据过滤器来修复安全问题。
Web 应用渗透测试工具
有许多开源和商业的 Web 应用安全评估工具可以使用,例如:
- Acunetix WVS/WVS11;
- Netsparker Web Scanner;
- IBM Rational Appscan Standard Edition;
- HP Web Inspect Professional;
- Paros Proxy etc.
相较于自动化技术,手动执行 Web 应用渗透测试任务依然是很好的选择,因为它可以在测试时提供更大的灵活性。手动执行 Web 应用安全评估包含多个步骤,根据你的测试目的(例如利用漏洞),这些步骤能够涵盖从信息收集到漏洞利用的全流程范围。
如何执行 Web 应用渗透测试任务
在明确 Web 应用的安全评估目标后,首先要做的事情就是信息收集。你需要尽可能多的收集靶标应用信息,这将有助于规划下一个阶段的渗透测试任务。例如识别所有提供公开服务的系统,靶标应用所使用的软件平台等。将 Web 应用名称或技术实现作为自定义关键字,在 Google、LinkedIn 或其他有效的在线社交网站进行信息收集,在此之后,你还应当搜寻并下载包含敏感信息(例如用户名和密码)的 Web 应用文件。
现在,通过 Web 应用的源代码或其他有效的在线资源,分析靶标应用所使用的技术实现。这是非常重要的步骤,因为这些信息有助于我们规划下一个阶段的渗透测试任务。
如果你使用自动化工具完成信息收集,那么分析靶标应用的技术实现将尤为重要,因为此类工具只能检测基于特定 Web 应用框架和编程语言的漏洞,无法有效识别所有漏洞信息。
我们始终建议通过由外向内(即,以提供公开服务的系统作为测试起点)的方式执行渗透测试任务,这将有助于我们从攻击者的角度了解其使用的攻击方式、攻击技术和攻击路径,更全面的分析 Web 应用暴露的攻击面。
如何提升 Web 应用渗透测试的效果
在开始 Web 应用渗透测试任务之前,需要完成大量的计划和准备工作。你需要清楚的意识到 Web 应用是非常复杂的系统,它是由许多技术实现组合而成,例如 Web 服务器 /Web 应用服务器、Web 应用框架或编程语言等,因此确定靶标应用使用了哪些技术实现是非常重要的。
某些工具只支持对特定类型的 Web 应用技术进行检测,例如:
Paros 支持检测由 PHP 技术开发的应用,不支持基于 ASP 技术开发的应用;
Acunetix WVS 可以自动识别运行在 Windows 服务器上的应用服务类别(即 Apache 或者 IIS),而在 Linux 环境中,需要在初始化阶段对应用服务类别进行手动配置,这是因为 Acunetix WVS 可以在 Windows 环境中进行自动检测,但是在 Linux 环境中却无法进行自动检测。
译者介绍
仇凯,51CTO 社区编辑,目前就职于北京宅急送快运股份有限公司,职位为信息安全工程师。主要负责公司信息安全规划和建设(等保,ISO27001),日常主要工作内容为安全方案制定和落地、内部安全审计和风险评估以及管理。
原文标题:The Complete Guide to Web Application Penetration Testing,作者:Ariaa Reeds
原文链接:
https://readwrite.com/2022/01/02/the-complete-guide-to-web-application-penetration-testing/
评论