Web应用程序渗透测试 步骤、方法和工具(最全!!!)

       Web 应用程序渗透测试由四个主要步骤组成,包括信息收集、研究和利用、报告和建议以及持续支持的修复。执行这些测试主要是为了在整个生命周期中维护软件代码开发的安全。编码错误、特定要求或缺乏网络攻击向量知识是执行此类渗透测试的主要目的。

那什么是 Web 应用程序渗透测试呢?

     Web 应用程序渗透测试涉及一系列方法步骤,旨在收集有关目标系统的信息、查找其中的漏洞或故障、研究能够成功克服这些故障或漏洞并危害 Web 应用程序的漏洞利用方法。 

     开放Web 应用程序安全项目(OWASP) 是一个专注于发现和报告 Web 应用程序安全漏洞的社区。 

      他们享有盛誉的十大安全缺陷列表每年都会更新,以反映 Web 应用程序安全性的全球趋势。OWASP 还发布了最常用的文章和安全工具。

为什么要执行 Web 应用程序渗透测试?

     由于 Web 应用程序的巨大扩展,越来越多的互联网资源被用于开发软件以及配置应用程序以在这种新环境下正常工作。

     然而,这一新发现的前沿开辟了另一个攻击媒介,恶意黑客可以利用它来谋取个人利益。

     考虑到某些 Web 应用程序保存敏感数据,因此始终确保它们的安全非常重要,特别是因为其中许多应用程序公开暴露在互联网上。

      将 Web 应用程序渗透测试作为软件开发生命周期或 SDLC 流程的一部分进行,将是抵御 Web 应用程序漏洞的最佳且最具成本效益的策略。

软件开发生命周期 (SDLC)

    软件开发生命周期 (SDLC)是一套通用指南,旨在提高正在开发的软件的成功率以供将来使用。

    SDLC 定义了一系列要采取的步骤,以便提供对最终用户来说更方便的更好产品,并且还考虑了最具成本效益的方法。

     软件测试是 SDLC 过程的重要组成部分,涉及几个关键参数或事件。

     通过开发过程的各个阶段,从集思广益到编码,工程师和项目经理都有机会通过生成错误最少的最佳应用程序来提出满足客户需求的最有效方法。

使用哪些步骤和方法来执行 Web 应用程序笔测试?

    为了强调应用程序和Web应用程序之间的区别,Web应用程序的渗透测试主要关注Web应用程序的环境和设置。

    换句话说,测试 Web 应用程序的重点是收集有关 Web 应用程序的公共信息,然后继续绘制托管 Web 应用程序所涉及的网络。调查可能的注入篡改攻击以及应用程序的实际学习和处理将在稍后进行。

第 1 步:信息收集

     信息收集或侦察阶段是任何渗透测试过程中最重要的步骤,因为它为您提供了大量信息,以便您轻松识别漏洞并在以后利用它们。

将此阶段视为您试图建造的金字塔的基础。

根据您想要与目标系统实现的交互类型,侦察有两种类型:

1.主动侦察      2.被动侦察

被动侦察

  收集互联网上已有的信息并且不直接与目标系统交互的方式称为被动侦察

  此阶段的大多数研究都是通过各种网站在线完成的,从 Google 开始。第一步通常涉及使用 Google 语法、枚举网站子域、链接等等。

主动侦察

与被动侦察相反,主动侦察直接探测目标系统并检索输出。

主动侦察的示例包括对 Web 应用程序进行指纹识别、使用 Shodan 网络扫描仪、执行 DNS 正向和反向查找、DNZ 区域传输等。

使用 Nmap 对 Web 应用程序进行指纹识别

对 Web 应用程序进行指纹识别涉及收集有关 Web 应用程序的信息,例如使用的脚本语言、服务器软件和版本以及服务器的操作系统。其中大部分工作可以使用Nmap网络扫描仪来完成。

针对目标 IP 或目标 IP 范围运行 Nmap,并记下所有开放端口和正在运行的服务,以及上述有关操作系统版本的信息。

Shodan 网络扫描仪

使用 Shodan 网络扫描仪,您可以识别有关托管 Web 应用程序的其他信息(如果在互联网上公开可用)。

Shodan 提供有关其扫描的任何公开 IP 的大量信息。信息范围包括地理位置、打开的端口号、使用的服务器软件以及其他一些有用的详细信息。

DNS 正向和反向查找

为了将新发现的子域与其各自的 IP 地址关联起来,您可以使用正向 dns 查找、ping,甚至使用更高级的工具,例如 Burp Suite。

DNS 区域传输

要执行 DNS 区域传输,请使用“nslookup”命令来识别 DNS 服务器。其他选项是专门用于 DNS 服务器识别的网站。识别所有 DNS 服务器后,使用“dig”命令并尝试 DNS 区域传输。

识别相关外部站点

这是信息收集阶段的重要步骤,因为外部站点和目标站点之间通常存在流量。使用 Burp Suite 可以最轻松地完成此操作,稍后我们将更详细地介绍它。

检查 HEAD 和 OPTIONS HTTP 请求

来自 HEAD 和 OPTION 请求的响应肯定会揭示 Web 服务器软件和版本。有时,响应包含更有价值的数据。

在打开 Burp Suite 的“拦截”功能的情况下,您可以通过访问目标网站轻松拦截此信息。

通过错误页面收集有关 Web 应用程序的信息

错误页面可以提供许多有关网站运行的服务器版本和类型的有用反馈。根据此信息,您可以开始可视化 Web 应用程序的环境。

第二步:研究与开发

在执行 Web 应用程序渗透测试时,您可以使用大量的安全工具,其中大多数都是开源的。

然而,要将您的选择范围缩小到仅几种工具可能具有挑战性。这就是侦察阶段如此重要的原因。

您不仅可以找到稍后查找漏洞和漏洞利用所需的所有必要信息,还可以缩小攻击向量的范围,从而缩小可用于实现目标的工具的范围。

Web应用程序渗透测试使用哪些工具?

整个渗透测试过程很大程度上取决于侦察阶段和发现的漏洞。通过彻底的调查,找到正确的漏洞并访问系统要容易得多。

在线扫描仪和搜索引擎等工具可以帮助您被动收集有关目标的信息。使用 Nmap 枚举目标系统并发现实时端口。

网站渗透测试中常用的流行工具包括:

W3af

打嗝套件

SQLMap

元分析软件

九头蛇

约翰·里珀

跳鱼

拉特代理

模糊模糊

守望者

对于自动化Web 应用程序漏洞扫描、嗅探和利用阶段,您可以使用 W3af 扫描仪、Burp Suite Toolkit、SQLMap 等工具以及 Hydra 或 John Ripper 等各种密码破解工具。

Metasploit项目中还提供了大量其他工具,但遗憾的是它们超出了本文的范围。

Kali Linux 中的 Metasploit 框架肯定是首选,但您也可以使用一些专门设计用于帮助 Web 应用程序渗透测试过程的业界最佳工具来补充它。

下面列出的工具及其功能将向您介绍对易受攻击的 Web 应用程序进行一点点篡改可能会发生什么。

Web 应用程序框架 (W3af) 300

W3af或Web应用程序框架是一个安全扫描器,主要用于发现漏洞。您可以在几乎 Web 应用程序渗透测试中使用 W3af 来快速探测目标网站及其托管服务器。

首先,输入“cd w3af.txt”打开 W3af 控制台。进入正确的目录后,输入“./w3af_console”以打开 w3af.conf 文件。

接下来,输入“target”、“set target xxxx”并按回车键。输入“back”跳转到一个目录,配置将被保存。

最后,输入“设置插件”以选择所需的扫描选项。在这种情况下,通过键入“audit all”选择全部,然后键入“back”返回一个目录。写“开始”并运行扫描。

扫描完成后,W3af 将报告扫描发现的漏洞。

Burpsuit

Burp Suite是一款开源 Web 应用程序渗透测试工具,有两个选项。开源版本可供任何人免费使用,但该工具缺少各种功能。

Burp Suite 的商业版本提供了更多的自动化和功能,并授权给许多渗透测试公司。

Burp Suite 中的各种功能使其成为全能的 Web 应用程序安全测试工具,可在整个渗透测试过程中使用。使用 Burp Suite 收集 http 流量很容易,并且在利用领域具有巨大的可能性。

SQLMap

SQLMap是最好的开源自动化工具之一。它简化了执行 SQL 注入攻击的过程,并提供对受感染数据库服务器的访问。

主要功能之一包括数据库指纹识别、扫描漏洞和可能的利用。

第 三 步:报告和建议

与编写任何其他渗透测试报告一样,Web 应用程序报告也没有什么不同。

报告的结构应该清晰简洁,并有足够的数据来支持你的发现。确保坚持有效的方法并尽可能具有描述性。

通过写下成功的漏洞利用并按重要性对其进行分类,您将帮助客户公司集中精力修复其系统中最关键的部分。

一些公司确保始终为面向业务的人员编写报告,以便客户 IT 人员和高层管理人员清楚地了解报告以及他们面临风险的程度。 

第 四步:补救和持续支持

许多公司发现自己无法修复渗透测试发现的所有漏洞。最佳实践是首先缓解严重和高度的漏洞,然后再关注中度和低度的漏洞。

由于每个漏洞被利用的可能性各不相同,因此优先级起着重要作用。

检测到的某些漏洞是可能的,但在没有访问内部系统的情况下是不可能的,并且某些漏洞具有远程代码执行的风险,应充分优先考虑以反映可能性和影响。

许多渗透测试公司提供重新测试作为其合同的一部分,并将为您提供二次渗透测试,以验证先前测试中发现的已缓解的漏洞。

您可以在这里与安全和 IT 团队密切合作,解决首次测试完成后发现的所有漏洞。

PentestDB 1 介绍 本项目用于提供渗透测试的辅助工具、资源文件 1.1 辅助工具 提供轻量级的易扩展的工具,可以快速编写exploit、添加漏洞验证/扫描规则、添加指纹规则、爆破规则等;包含以下功能: Exploit系统。易扩展的exploit系统,能够使用API快速编写exploit,能够批量执行exploit 子域名爆破。爆破子域名,使用域传送、DNS爆破、GoogleHacking进行子域名爆破 C段扫描。C段扫描,支持生成html格式输出文件 服务端应用识别。识别CMS类型、Web服务器、操作系统、WEB中间件等 URI敏感资源爆破。爆破WEB敏感文件,整站备份、配置备份、敏感文件等 社工密码字典生成。根据社工信息生成密码爆破字典 Google Hacking。GoogleHacking,生成URL字典 编解码等功能。支持非常丰富的编解码方式,方便做payload编码 1.2 资源文件 各种渗透测试常用的资源文件,包括各种爆破字典、exploit、webshell、攻击payload等 2 安装 从这里下载最新版本,或使用命令 git clone https://github.com/alpha1e0/pentestdb.git clone到本地 PentestDB支持Windows/Linux/MacOS,需使用python 2.6.x 或 2.7.x运行 2.1 解决lxml依赖 项目中的脚本文件依赖于lxml linux系统一般默认安装lxml,如果没有可通过以下方式安装: pip install lxml apt-get install lxml yum install lxml windows可通过以下方式安装lxml: 到这里找到对应系统的安装包,下载到本地 安装安装包,pip install package.whl 2.2 解决nmap依赖 项目中的C段扫描依赖于nmap扫描器 到这里下载nmap相应版本 在windows下需要设置环境变量,让系统能够找到nmap.exe。 3 使用 3.1 常用脚本 项目中的python脚本提供用有用的渗透辅助功能,根目录下的pen.py为脚本入口,另外script目录下也有其他一些脚本。 3.1.1 Exploit系统 pen.py的exploit子命令提供了exploit模块相关操作,exploit模块是一个轻量级的exploit框架,可以编写各种web漏洞的exploit: 搜索exploit信息 增加、删除、修改exploit信息 执行某个exploit 搜索并批量执行exploit exploit保存在项目根目录下的exploit目录下 例如: # 列举、搜索、注册、更新、删除 pen.py exploit -l pen.py exploit -q appName:joomla pen.py exploit --register exploit pen.py exploit --update cms_joomla_3_4_session_object_injection.py pen.py exploit -d "Joomla 1.5~3.4 session对象注入漏洞exploit" pen.py exploit --detail "Joomla 1.5~3.4 session对象注入漏洞exploit" # 执行exploit pen.py exploit -e cms_joomla_3_4_session_object_injection.py -u http://127.0.0.1:1234 --attack pen.py exploit -s appName:joomla -u http://127.0.0.1:1234 --verify pen.py exploit -s appName:joomla -u @url.txt 注:有关exploit模块的详细信息请参考exploit/readme.md 3.1.2 服务端应用识别 pen.py的service子命令提供了服务端应用识别的功能,能够识别服务器信息,包括: 操作系统 web服务器 web中间件 CMS等 例如: pen.py service http://xxx.com # 开启CMS识别加强模式 pen.py service http://xxx.com --cms 3.1.3 社工密码字典生成 pen.py的password子命令提供了根据社工信息生成密码字典的功能,能够设置不同关键字生成密码字典
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值