安全性测试:OWASP ZAP使用入门指南

免责声明:

本文意在讨论使用工具来应对软件研发领域中,日益增长的安全性质量测试需求。本文涉及到的工具不可被用于攻击目的。

1.  安全性测试

前些天,一则12306用户账号泄露的新闻迅速发酵,引起了购票用户的一片恐慌。

且不论这次账号泄露的漏洞究竟是发生在哪里,网络安全性这个话题再次引起了我们的关注。

做为IT从业人员,我们的研发产品是否具有足够的安全性,是不是能够在亿万用户的?我们是不是应该更多的关注产品安全性,投入更多的安全性测试资源?

从行业发展的趋势来看,答案是肯定的。

2.  OWASP

OWASP是一个开源的、非盈利的全球性安全组织,致力于应用软件的安全研究。其使命是使应用软件更加安全,使企业和组织能够对应用安全风险作出更清晰的决策。目前OWASP全球拥有220个分部近六万名会员,共同推动了安全标准、安全测试工具、安全指导手册等应用安全技术的发展。

近几年,OWASP峰会以及各国OWASP年会均取得了巨大的成功,推动了数以百万的IT从业人员对应用安全的关注以及理解,并为各类企业的应用安全提供了明确的指引。

OWASP被视为web应用安全领域的权威参考。2009年发布的美国国家和国际立法、标准、准则、委员会和行业实务守则参考引用了OWASP。美国联邦贸易委员会(FTC)强烈建议所有企业需遵循OWASP十大WEB弱点防护守则。

OWASP 颁布并且定期维护更新的web安全漏洞TOP 10,也成为了web安全性领域的权威指导标准,同时也是IBM APPSCAN、HP WEBINSPECT等扫描器漏洞参考的主要标准。

3.  ZAP

OWASP ZAP,全称:OWASP Zed Attack Proxy攻击代理服务器是世界上最受欢迎的免费安全工具之一。ZAP可以帮助我们在开发和测试应用程序过程中,自动发现 Web应用程序中的安全漏洞。另外,它也是一款提供给具备丰富经验的渗透测试人员进行人工安全测试的优秀工具。

3.1  ZAP的工作原理

在安全性测试领域,安全性测试主要可以由以下几种测试策略来覆盖:

    • 漏洞分析  -  对系统进行扫描来发现其安全性隐患
    • 渗透测试  -  对系统进行模拟攻击和分析来确定其安全性漏洞
    • 运行时测试  -  终端用户对系统进行分析和安全性测试(手工安全性测试分析)
    • 代码审计  -  通过代码审计分析评估安全性风险(静态测试,评审)

ZAP主要是用于应用上述的第二种测试,即渗透性测试。

ZAP以架设代理的形式来实现渗透性测试,类似于fiddler抓包机制。他将自己置于用户浏览器和服务器中间,充当一个中间人的角色,浏览器所有与服务器的交互都要经过ZAP,这样ZAP就可以获得所有这些交互的信息,并且可以对他们进行分析、扫描,甚至是改包再发送。

3.2  ZAP下载

下载地址:github: https://github.com/zaproxy/zaproxy/wiki/Downloads

现在的稳定版本是2.7.0版,推荐下载windows64位安装包来初试安全性扫描机制。

3.3  ZAP安装

本文推荐的windows64位版的ZAP安装非常简单,跟普通的安装程序过程没有太大不同,本文不再赘述。

当然遗憾的是,现阶段ZAP的中文支持做得还不是很好,基本的操作界面以英文为主。

3.4  初步使用ZAP

进程保留:

初次打开ZAP时,会看到以下对话框,询问是否要保持ZAP进程。

保存进程则可以让你的操作得到保留,下次只要打开历史进程就可以取到之前扫描过的站点以及测试结果等。

一般来说,如果对固定的产品做定期扫描,应该保存一个进程做为长期使用,选第一或者第二个选项都可以。

如果只是想先简单尝试ZAP功能,可以选择第三个选项,那么当前进程暂时不会被保存。

设置代理:

打开ZAP以后看到的是如下界面:

在开始使用他进行渗透测试之前,如前文所述,首先需要将他设为我们的浏览器代理。

ZAP的默认地址和端口是标准的localhost:8080,如下图:

如果端口可用,接下来我们只需要去修改浏览器代理,以火狐为例:

在设置-常规-连接设置里,选择手动代理,并将http代理设为与ZAP一致:

完成这一设置以后,我们再用这个浏览器去访问站点时,都会通过ZAP这个中间人,于是这就给ZAP提供了抓包、分析、渗透测试的可能性。

快速测试:

ZAP右上方区域是快速测试窗口,可以开启非常傻瓜式的渗透测试:

输入网址,点击‘Attack’,搞定,so easy。

在快速攻击过程中,ZAP做了以下几件事:

  • 使用爬虫抓取被测站点的所有页面
  • 在页面抓取的过程中被动扫描所有获得的页面
  • 抓取完毕后用主动扫描的方式分析页面,功能和参数

结果分析:

等待上述快速测试完成以后,我们就可以拿到ZAP提供的测试结果进行分析。

快速测试中,ZAP会产出以下一些产物:

  • 被测站点地图及页面资源
  • 所有请求、反馈记录
  • 安全性风险项目列表

其中我们最关注的当然是安全性风险项,ZAP将做出以下标识:

由上到下分别为:高、中、低、信息、通过

在窗口最底部,切换到Alert界面,可以看到所有扫描出的安全性风险:

其中的所有风险项可以展开,ZAP在右侧窗口会对该风险项提供说明和解释,并且在右上部response区域高亮展示具体风险项由来(从反馈中分析得出的)。

如果只是简单的安全性测试需求,或者只是为了学习安全性测试知识,到这一步为止ZAP给出的风险项分析和报告,已经可以一定程度满足要求了。

通过主菜单Report选项,可以选择输出HTML、XML等多种格式安全性测试报告。

主动爬取网站

之前介绍了使用ZAP做为浏览器代理,配置好代理的情况下,使用浏览器进行任何站点的访问都会经过ZAP,这时就会在ZAP的context记录里留下该站点记录,如图:

右键点击需要测试的站点,选择Attack->Spider,弹出的选项窗口点击Start Scan,则会开始手动爬取网站。

主动扫描

与节操作类似,右键点击目标站点,选择Attack->Active Scan,就可以触发主动扫描:

扫描完毕后,同样可以切换到Alert界面,查看安全风险项,或者输出测试报告。

关于ZAP的入门使用就介绍到这里,学会以上使用技巧,就已经可以应付初级的安全测试需求了。

原文地址:https://www.cnblogs.com/yingyingja/p/10219012.html

时间: 2024-10-07 19:21:13

安全性测试:OWASP ZAP使用入门指南的相关文章

安全性测试入门(二):Command Injection命令行注入攻击和防御

安全性测试入门(二):Command Injection命令行注入攻击和防御 本篇继续对于安全性测试话题,结合DVWA进行研习. Command Injection:命令注入攻击. 1. Command Injection命令注入 命令注入是通过在应用中执行宿主操作系统的命令,来达到破坏目的的一种攻击方式.如果我们的应用程序将不安全的用户输入传递给了系统命令解析器(shell),那么命令攻击就有可能发生. 通常来说,由应用程序传递操作系统命令会赋有和应用一样的权限,所以如果没有合理防御机制会给系

安全性测试入门 (三):CSRF 跨站请求伪造攻击和防御

安全性测试入门 (三):CSRF 跨站请求伪造攻击和防御 本篇继续对于安全性测试话题,结合DVWA进行研习. CSRF(Cross-site request forgery):跨站请求伪造 1. 跨站请求伪造攻击 CSRF则通过伪装成受信任用户的请求来利用受信任的网站,诱使用户使用攻击性网站,从而达到直接劫持用户会话的目的. 由于现在的主流浏览器比如火狐和谷歌,都倾向于使用单个进程来管理用户会话(比如我们在FF和Chrome中,当要访问一个新页面时,通常是通过新增浏览器页面来达到的,而不是新开一

Web API 入门指南 - 闲话安全

参考页面: http://www.yuanjiaocheng.net/Spring/first.html http://www.yuanjiaocheng.net/entity/modelbrowser.html http://www.yuanjiaocheng.net/entity/dbcontext.html http://www.yuanjiaocheng.net/mvc/first.html http://www.yuanjiaocheng.net/webapi/first.html W

(转)OWASP ZAP下载、安装、使用(详解)教程

OWASP Zed攻击代理(ZAP)是世界上最受欢迎的免费安全审计工具之一,由数百名国际志愿者*积极维护.它可以帮助您在开发和测试应用程序时自动查找Web应用程序中的安全漏洞. 也可以说:ZAP是一个中间人代理.它允许您查看您对Web应用程序发出的所有请求以及您从中收到的所有响应. 即可以用于安全专家.开发人员.功能测试人员,甚至是渗透测试入门人员.它也是经验丰富的测试人员用于手动安全测试的绝佳工具. 主要拥有以下重要功能: 本地代理 主动扫描 被动扫描 Fuzzy 暴力破解 一.OWASP Z

[转帖]Vagrant 入门指南

Vagrant 入门指南 https://linux.cn/article-9587-1.html Vagrant 简介 Vagrant 是一个用来构建和管理虚拟机环境的工具.Vagrant 有着易于使用的工作流,并且专注于自动化,降低了开发者搭建环境的时间,提高了生产力.解决了“在我的机器上可以工作”的问题. Vagrant 是为了方便的实现虚拟化环境而设计的,使用 Ruby 开发,基于 VirtualBox 等虚拟机管理软件的接口,提供了一个可配置.轻量级的便携式虚拟开发环境.使用 Vagr

Quartz.NET简介及入门指南

Quartz.NET简介 Quartz.NET是一个功能完备的开源调度系统,从最小的应用到大规模的企业系统皆可适用. Quartz.NET是一个纯净的用C#语言编写的.NET类库,是对非常流行的JAVA开源调度框架 Quartz 的移植. 入门指南 本入门指南包括以下内容: 下载 Quartz.NET 安装 Quartz.NET 根据你的特定项目配置 Quartz 启动一个样例程序 下载和安装 你可以下载 zip 文件或使用 Nuget 程序包.Nuget 程序包只包含 Quartz.NET 运

[转载]TFS入门指南

[原文发表地址] Tutorial: Getting Started with TFS in VS2010 [原文发表时间] Wednesday, October 21, 2009 1:00 PM 本月初,我们发布了TFS新基础配置.该配置为建立支持源码管理,工作项和生成(builds)的TFS版本提供了便利. 这是一个好机会将你在VSS(Visual Source Safe)上的资源迁移到TFS,并且还可以选用一些新的特性.现在VS2010 Beta2的正式版已经发布了,下面是该系统的入门指南

编程入门指南

前言 如今编程成为了一个越来越重要的「技能」:作为设计师,懂一些编程可能会帮你更好地理解自己的工作内容:作为创业者,技术创始人的身份则会让你的很多工作显得更容易.而作为刚想入门的新手,面对眼前海量的信息,或许根本不知道从哪里开始:入门轻松度过初级材料的学习后,发现学习越来越困难,陡峭的学习曲线又让你望而却步:你知道如何在页面上打印输出一些文本行,但是你不知道何时该进行一个真正的有用的项目:你不清楚自己还有哪些不知道的东西,你甚至搞不清下一步该学什么. 这篇文章的内容对此不仅会有一些方向性的建议,

HTML5 Plus移动App(5+App)开发入门指南

HTML5 Plus移动App,简称5+App,是一种基于HTML.JS.CSS编写的运行于手机端的App,这种App可以通过扩展的JS API任意调用手机的原生能力,实现与原生App同样强大的功能和性能. HTML5 Plus规范 通过HTML5开发移动App时,会发现HTML5很多能力不具备.为弥补HTML5能力的不足,在W3C中国的指导下成立了www.html5plus.org组织,推出HTML5+规范.HTML5+规范是一个开放规范,允许三方浏览器厂商或其他手机runtime制造商实现.