ZAP桌面应用

ZAP桌面应用由以下元素组成:

1. 菜单栏  – 提供多种自动化和手动工具的访问

2. 工具栏  – 提供快速访问最常用组件的用户接口

3. 树结构窗口  – 展示被测网站树结构和脚本树

4. 工作站窗口  – 展示请求,反馈以及脚本,并且允许编辑他们

5. 信息窗口 – 展示工具执行的详细结果

6. 页脚 – 展示主要自动工具的执行状态以及警告的汇总

在使用ZAP时,你可以点击菜单栏中的帮助或者按F1来查看ZAP桌面应用的用户指引。

更多信息请查看ZAP在线帮助文档。

ZAP也支持API和命令行运行的功能,不过本文中暂不讨论。
 

重要:

只可以在当你有权使用主动攻击的方式测试某一应用时才可以使用ZAP。

因为ZAP的运作方式会让应用如同遭受真实攻击,应用的功能和数据都有可能因此受损。

如果你担心使用ZAP会给被测应用带来风险,你可以切换到安全模式(ZAP的可用功能会大大减少)。

要切换成安全模式,点击主菜单栏的“模式”下拉菜单选择安全模式。

 

运行自动扫描

最简单使用ZAP的方式就是通过快速开始菜单。

快速开始是在你安装ZAP时默认添加的一个附加组件。

要执行一次快速开始的自动扫描:

1. 启动ZAP并且在工作站窗口中点击快速开始。

2. 点击自动扫描按钮。

3. 在URL栏中,填入将被扫描的Web应用的URL。

4. 点击“攻击”按钮。

ZAP会进一步使用爬虫技术爬取Web应用,并且被动扫描爬到的每一个页面。

然后ZAP会使用主动扫描器去攻击所有发现的页面、功能和参数。

ZAP提供了两种用来爬取Web应用的爬虫,用户可以选择使用。

传统的ZAP爬虫会通过Web应用反馈的HTML查找链接。

这种爬虫速度快,但是对于使用AJAX技术通过JavaScript来生成链接的应用而言,显得不那么有效。

对于AJAX应用,ZAP的AJAX爬虫会更加有效。这种爬虫会通过唤起浏览器进程来探索Web应用,并且会追踪动态生成的链接。

AJAX爬虫比传统爬虫速度要慢,并且在无界面模式下要求进一步配置才能使用。

ZAP会被动扫描所有以代理形式接收到的请求和反馈。

到这一步为止,ZAP还只做了被动扫描。被动扫描不会以任何形式改动任何反馈信息,所以相对是安全的。

这种扫描是在后台线程中执行的,并不会减缓扫描速度。

被动扫描有助于发现部分问题,并且提供一些基础的Web安全性信息,帮助进一步确定测试方向。

主动扫描,则会通过一些预设的攻击来达到发现更多漏洞的目的。

对于被测目标而言,主动扫描会发起真实的、可能造成损失的攻击。

所以不要对你没有测试权限的目标进行主动扫描。

解读测试结果

当ZAP爬取你的Web应用时,他会创建这个应用的页面结构图,以及加载这些页面用到的资源文件。

然后他会记录每个页面的请求和反馈,并且就这些请求和反馈中可能的安全性问题发出警告。

在ZAP的站点视图里,我们可以以树结构查看扫描到的所有URL。

查看警告和警告详情。

页脚的左手边列出了在测试过程中发现的警告数目,以不同的风险级别归类。

这些风险类型是:

要查看测试中的警告信息:

1. 在信息窗口中点击警告标签

2. 点击单个警告,将在右侧信息窗口展示被测URL以及所发现的漏洞

3. 在工作台窗口,可以查看请求反馈的头部和反馈体,有漏洞的部分将被高亮显示。

手动扫描应用

被动扫描和自动攻击功能对于开始检查你的Web应用漏洞时一个很好的方法,但是也有很多局限。

比如:

  • 任何需要用户鉴权的页面都无法被被动扫描,除非你配置了ZAP的鉴权功能,否则ZAP不会处理所需的权限授权。

  • 对于被动扫描和自动攻击所执行的攻击类型而言,测试人员并无太多控制能力。事实上ZAP还提供了多种扫描和攻击能力。

爬虫可以很好的基本探索一个站点,但是只有结合手动探索才能更高效。

举个例子来说,爬虫在遇到表单时,只会填入基本的默认信息。但是用户可以填写更相关的信息,这样又可以为ZAP提供更多该站点的信息。

对于需要真实邮件地址来完成注册的页面以及类似的页面尤其如此。

爬虫可能会填入随机字串,然后得到报错。

用户则可以根据报错提供合法输入,这样当表单正确提交后,又有更多站点的内容可以被访问并被爬取到。

你应该在ZAP代理下访问你的整个Web应用。

这样做的好处是,当你手动访问站点时,ZAP会被动扫描访问过程中触发的请求和反馈,并检查其中的漏洞,进一步完成站点树结构,记录扫描到的所有漏洞警告。

让ZAP访问到你的Web应用的所有页面是很重要的,以求探明所有页面之间的链接。

如果存在隐藏的页面,这是不安全的,因为这些页面可能在没有被注意的情况下就被发布上线。

所以在手动访问站点时,尽可能做到全面。

通过快速开始菜单,你可以快速的启动ZAP代理的浏览器。

通过这种方式打开的浏览器也会无视任何证书警告。

手动访问站点:

1. 启动ZAP,点击工作台窗口中的快速开始按钮

2. 点击手动访问

3. 在URL框体内填入要访问的URL

4. 选择要使用的浏览器

5. 点击启动浏览器按钮

这样可以以全新的用户配置(profile)启动你安装的浏览器。

如果你想带上已有的用户配置,比如说已安装的浏览器插件等,那么你只能手动启动浏览器,并且配置其以ZAP为代理,导入和新人ZAP Root CA证书。

 
 

安全性测试:OWASP ZAP 2.8 使用指南(二):ZAP基础操作的更多相关文章

  1. Swift语言指南(二)--语言基础之注释和分号

    原文:Swift语言指南(二)--语言基础之注释和分号 注释 通过注释向自己的代码中注入不可执行的文本,作为你自己的笔记或提示.Swift编译器运行时会忽略注释. Swift的注释与C语言极其相似,单 ...

  2. 安全性测试入门:DVWA系列研究(二):Command Injection命令行注入攻击和防御

    本篇继续对于安全性测试话题,结合DVWA进行研习. Command Injection:命令注入攻击. 1. Command Injection命令注入 命令注入是通过在应用中执行宿主操作系统的命令, ...

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

    免责声明: 本文意在讨论使用工具来应对软件研发领域中,日益增长的安全性质量测试需求.本文涉及到的工具不可被用于攻击目的. 1. 安全性测试 前些天,一则12306用户账号泄露的新闻迅速发酵,引起了购票 ...

  4. 安全性测试:OWASP ZAP 2.8 使用指南(四):ZAP扫描移动应用安全

    在做移动应用(APP,小程序等)测试时,需要关注应用安全性. ZAP是可以用来进行手机移动应用渗透性测试扫描的. 正因为ZAP是采用“中间代理”的形式,截取并扫描所有客户端与服务器的交互请求,作为客户 ...

  5. 安全性测试:OWASP ZAP 2.8 使用指南(一):安全测试基础及ZAP下载、安装

    概览 本文意在对于OWASP's Zed Attack Proxy(ZAP)软件做一个基本使用指南介绍. ZAP是一个用于实施安全性测试的工具,即使没有很强的安全测试背景也可以很好的使用. 为了达到这 ...

  6. OWASP固件安全性测试指南

    OWASP固件安全性测试指南 固件安全评估,英文名称 firmware security testing methodology 简称 FSTM.该指导方法主要是为了安全研究人员.软件开发人员.顾问. ...

  7. 安全性测试入门:DVWA系列研究(一):Brute Force暴力破解攻击和防御

    写在篇头: 随着国内的互联网产业日臻成熟,软件质量的要求越来越高,对测试团队和测试工程师提出了种种新的挑战. 传统的行业现象是90%的测试工程师被堆积在基本的功能.系统.黑盒测试,但是随着软件测试整体 ...

  8. 安全性测试入门 (五):Insecure CAPTCHA 验证码绕过

    本篇继续对于安全性测试话题,结合DVWA进行研习. Insecure Captcha不安全验证码 1. 验证码到底是怎么一回事 这个Captcha狭义而言就是谷歌提供的一种用户验证服务,全称为:Com ...

  9. 初识App安全性测试

    目前手机App测试还是以发现bug为主,主要测试流程就是服务器接口测试,客户端功能性覆盖,以及自动化配合的性能,适配,压测等,对于App安全性测试貌似没有系统全面统一的标准和流程,其实安全性bug也可 ...

  10. Web系统测试Web安全性测试

    WEB安全性测试介绍WEB安全性测试--拒绝服务攻击WEB安全性测试--文件上传漏洞WEB安全性测试--跨站攻击WEB安全性测试--SQL注入一WEB安全性测试--SQL注入二WEB安全性测试--SQ ...

随机推荐

  1. Java源码之ConcurrentHashMap

    ⑴背景 ConcurrentHashMap是线程安全高效的HashMap.而HashMap在多线程情况下强行使用HashMap的put方法可能会导致程序死循环,使CPU使用率达到100%.(http: ...

  2. GOF23-工厂模式

    1.什么是工厂模式 就是实现创建者与调用者分离,工厂模式的核心(灵魂)其实就是:分工.   2.工厂模式有哪些 简单工场模式(静态工厂) 简单工厂模式也叫静态工厂模式,就是工厂类一般使用静态方法,通过 ...

  3. Linux - 通过expect工具实现脚本的自动交互

    目录 1 安装expect工具 2 expect的常用命令 3 作用原理简介 3.1 示例脚本 3.2 脚本功能解读 4 其他脚本使用示例 4.1 直接通过expect执行多条命令 4.2 通过she ...

  4. 朴素贝叶斯python代码实现(西瓜书)

    朴素贝叶斯python代码实现(西瓜书) 摘要: 朴素贝叶斯也是机器学习中一种非常常见的分类方法,对于二分类问题,并且数据集特征为离散型属性的时候, 使用起来非常的方便.原理简单,训练效率高,拟合效果 ...

  5. 《Java 8 in Action》Chapter 4:引入流

    1. 流简介 流是Java API的新成员,它允许你以声明性方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现).就现在来说,你可以把它们看成遍历数据集的高级迭代器.此外,流还可以透明地并行 ...

  6. win server 2008搭建域环境

    0x00 简介 1.域控:win server 2008 2.域内服务器:win server 2008.win server 2003 3.域内PC:win7 x64.win7 x32.win xp ...

  7. node.js的Promise对象的使用

    Promise对象是干嘛用的? 将异步操作以同步操作的流程表达出来 一.Promise对象的定义 let flag = true; const hello = new Promise(function ...

  8. SSH开发模式——Struts2(第一小节)

    在制定了学习计划的学习过程中,我感觉学习还是很有效率的.很短的时间内,我便学习完了JavaWeb的连接池.DbUtils框架及其一些工具类的使用. 学无止境,学习这些知识还远远不够,所以,在接下来的时 ...

  9. Spring学习之旅(五)--AOP

    什么是 AOP AOP(Aspect-OrientedProgramming,面向方面编程),可以说是 OOP(Object-Oriented Programing,面向对象编程)的补充和完善. OO ...

  10. Android进阶之路(1)-详解MVC

    最近因为换工作的原因没有写博客,现在慢慢稳定了,我准备写一些关于Android 进阶的文章,也是为了督促自己学习,大家一起进步! 今天详细的分析一下Android APP架构之一:MVC ### MV ...