软件测试实验四 安全测试参考案例

简介: 软件测试实验四 安全测试参考案例

工具:AppScan

网站:传智播客图书库http://resource.boxuegu.com

简介:使用AppScan扫描传智播客图书库安全漏洞,评价其安全性。

AppScan安装

登录AppScan的中文官网:https://www.ibm.com/developerworks/cn/downloads/r/appscan/,下载最新的AppScan试用版,下载之后进行安装,AppScan的安装与普通软件相同。

首次打开AppScan会弹出安装向导。

用户可以单击观看AppScan使用视频教程、阅读入门PDF、下载AppScan扩展,也可以在这里新建扫描项目。如果不想再弹出该对话框,可以取消勾选左下角的“启动AppScan时显示该屏幕(D)”选项。

关闭使用向导之后,显示AppScan主界面。

在AppScan主界面,最重要的是视图选择器,视图选择器有三个选项:

●  数据:用于显示扫描的目录、URL、结果信息,上图就是数据选项界面。

●  问题:用于显示扫描到的安全漏洞并按严重级别排序,还会显示关于安全漏洞的详细信息。

●  任务:用于显示本次扫描结果中需要解决的任务。

认识了AppScan,下面通过扫描传智播客图书库为例来演示AppScan的使用。

1、在菜单栏中单击【文件】->【新建】,弹出新建扫描对话框。

2、在步骤1图中选择“常规扫描”,单击之后弹出扫描配置向导对话框。

3、在步骤2图中选择探索站点的方法,由于本案例是在本机上扫描Web应用程序,因此选择“AppScan(自动或手动)”选项。

选择完毕之后,单击【下一步(N)】按钮,进入URL配置页面。

4、在步骤3图中的“起始URL”输入框中输入传智播客图书库地址,选择扫描方式。AppScan扫描方式有两种:

●  仅扫描此目录中或目录下的链接(L):只扫描起始URL目录或者子目录中的链接。

●  将所有路径作为区分大小写来处理(Unix、Linux等)(T):扫描所有路径,并且区分大小写进行扫描。

案例要对传智播客图书库进行全面扫描,因此勾选第二个选项,单击【下一步(N)】按钮,进入登录管理页面。

5、登录

AppScan登录网站的选择有4种:记录、自动、提示、无。

  1. 记录:单击【记录(R)】按钮,选择下拉列表中的任一浏览器。

(1)记录

选择浏览器之后,AppScan进入网站。

(1)记录

登录网站之后,用户可以选择某个图片、链接等,到达一定的场景,然后单击【我已登录到站点(O)】,AppScan会记录这个登录序列,当到达同样的场景时AppScan就默认是登录了网站,这个过程类似于LoadRunner的脚本录制过程。

(2)自动:自动选项是指手动输入用户名和密码。

由于传智播客图书库不需要登录,因此在这里选择“无(O)”选项,选择完毕之后,单击【下一步(N)】按钮,进入测试策略选择界

6、在步骤5图中选择“缺省值”测试策略,单击【下一步(N)】按钮,进入测试优化界面。

7、在步骤6图中选择优化方式,为了缩短扫描时间,选择优化方式进行扫描。

选择完毕之后,单击【下一步(N)】按钮,进入完成配置向导界面

8、在步骤7图中选择扫描启动方式,AppScan扫描启动方式有4种:

● 启动全面自动扫描(A):AppScan根据之前的配置自动探索应用程序,且边探索边扫描页面。

● 仅使用自动“探索”启动(E):AppScan自动探索应用程序,但不做扫描,即不发送攻击。

8、在步骤7图中选择扫描启动方式,AppScan扫描启动方式有4种:

● 使用“手动探索”启动(M):手动访问应用程序,AppScan会记录用户访问的页面。

● 我将稍后启动扫描(L):AppScan不做任何操作,需要用户自己手动启动扫描。

8、本案例选择“启动全面自动扫描(A)”选项,接下来勾选“完成扫描配置向导后启动扫描专家(S)”选项,扫描专家会先大致探索一遍要扫描的网站,提出建议以更好的扫描网站,选择完毕之后,单击【下一步(N)】按钮,弹出自动保存扫描提示框。

9、在步骤8图中单击【是(Y)】按钮,将扫描过程保存到相应文件中,保存之后AppScan就开始自动扫描,这个过程只是探测扫描,它会将扫描到的信息提交给扫描专家进行分析,获得关于该网站的信息,帮助用户优化扫描配置。

9、探测扫描结果如下图。

10、在探测扫描过程中,扫描专家提出了几条建议,经过分析确认前4条为可执行建议,勾选前4条建议,单击【应用建议(A)】按钮,开始真正的扫描,

11、AppScan扫描过程时间比较长,会持续2~3个小时。在扫描过程中,如果发现安全问题,AppScan会实时显示在AppScan主窗口中,用户可以切换视图选择器查看。扫描结束,AppScan会生成一份详细的扫描报告。

结果分析:此次扫描发现2个高级别的安全漏洞,4个中级别的安全漏洞,326个低级别的安全漏洞。其中,2个高级别安全漏洞为跨站点脚本漏洞。

关于安全漏洞的分析,在视图选择器的“问题”选项最右侧提供了四个选项卡:

【问题信息】:显示安全漏洞所在的点。

【咨询】:显示安全漏洞形成的原因、技术描述、可能导致的危害以及利用该漏洞进行攻击的例子。

【修订建议】:显示安全漏洞的解决策略。

【请求/响应】:显示发送给应用程序测试相关反应的具体请求细节。

本次扫描最为严重的漏洞:跨站点脚本漏洞

原因:未对用户输入正确执行危险字符清理

危害:可能会使攻击者窃取或操纵客户会话和cookie,它们可能用于假冒合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务。

修复方案:

①使用经过审查的库或框架,如微软的反XSS库、OWASP ESAPI编码模块、Apache Wicket等,这些库和框架更容易生成正确编码的输出,不允许出现这种漏洞或提供更容易避免这种漏洞的结构。

②在不同组件之间传输数据时,了解数据应用的上下文环境及预期使用的编码。

③了解软件不可信输入的所有潜在区域,包括参数、Cookie、从网络读取的任何内容、环境变量、反向DNS查找、查询结果、请求头、URL组件、电子邮件、文件、文件名、数据库等,尽量减少攻击面。

④对输入进行验证,使用输入验证策略严格控制输入规范,拒绝不符合规范的所有输入,或者将其转换为符合规范的输入。

除了跨站点脚本漏洞,AppScan还发现了4个安全级别为中的漏洞,包括3个加密会话Cookie缺省Secure属性的漏洞和1个支持不推荐使用的SSL版本的漏洞,对于这些漏洞,读者同样可以通过上述四个选项卡了解漏洞的形成原因、危害及解决措施等。

目录
相关文章
|
4天前
|
机器学习/深度学习 人工智能 测试技术
软件测试中的自动化测试实践与挑战
本文深入探讨了软件测试领域中的自动化测试,从基本概念到实际应用案例,揭示了自动化测试在提升软件开发效率和质量中的关键作用。同时,文章也分析了在实施自动化测试过程中面临的主要挑战,并提出了相应的解决策略。
31 5
|
6天前
|
敏捷开发 测试技术 UED
软件测试的艺术:探索性测试的力量
【9月更文挑战第14天】在软件开发的海洋中,测试是确保航船不沉没的灯塔。本文将带你领略一种非传统的测试方法——探索性测试的魅力和力量。我们将一起揭开这种方法的神秘面纱,通过具体案例分析,理解它如何提升软件质量和用户体验。准备好扬帆起航,一起探索未知吧!
|
6天前
|
监控 jenkins 测试技术
软件测试中的自动化测试策略与实践
本文将深入探讨自动化测试在软件开发中的重要性及其实施策略。我们将从自动化测试的基本概念入手,分析其在提高软件质量、缩短开发周期和降低维护成本方面的优势。通过具体案例,展示如何有效地规划和执行自动化测试,以及如何评估其效果。
14 1
|
8天前
|
安全 测试技术 UED
软件测试的艺术:探索性测试的力量
【9月更文挑战第12天】在软件开发的海洋中,测试是导航船只安全航行的关键。本文将深入探讨一种独特的软件测试方法——探索性测试(Exploratory Testing),它如同艺术家的画笔,通过即兴和创造性的测试活动揭示软件之美与缺陷。我们将一起航行于探索性测试的浪潮之中,了解它如何增强测试过程的灵活性、深度和乐趣,同时提供高效和有效的质量保证。
|
4天前
|
敏捷开发 测试技术 UED
软件测试中的探索性测试方法
在软件开发过程中,测试是确保产品质量的重要环节。本文将探讨一种常被忽视但极其重要的测试方法——探索性测试。通过分析其定义、优势及实际应用案例,揭示如何更有效地发现软件缺陷,提升软件质量。
14 0
|
6天前
|
测试技术 持续交付
软件测试中的自动化测试实践与探索
在软件开发生命周期中,测试阶段是确保产品质量和稳定性的关键环节。随着技术的快速发展,自动化测试逐渐成为提升测试效率和覆盖率的重要手段。本文将探讨自动化测试的基本概念、工具选择、实施策略以及面临的挑战,旨在为读者提供关于如何在项目中有效应用自动化测试的指导性见解。
11 0
|
7天前
|
监控 Java 测试技术
探索软件测试中的自动化测试策略
在软件开发的生命周期中,测试阶段是确保产品质量和性能的关键步骤。随着技术的进步,自动化测试已成为提高测试效率、减少人为错误的重要手段。本文将探讨自动化测试的基本概念、优势以及实施策略,旨在为读者提供一个关于如何有效利用自动化测试来提升软件开发质量的清晰视角。
|
9天前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
56 7
Jmeter实现WebSocket协议的接口测试方法
|
9天前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
39 3
快速上手|HTTP 接口功能自动化测试
|
9天前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
22 5