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

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

工具: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版本的漏洞,对于这些漏洞,读者同样可以通过上述四个选项卡了解漏洞的形成原因、危害及解决措施等。

目录
相关文章
|
1月前
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
105 8
|
1月前
|
机器学习/深度学习 人工智能 监控
软件测试中的自动化测试策略与最佳实践##
在当今快速发展的软件行业中,自动化测试已成为确保软件质量和加速产品上市的关键工具。本文将探讨自动化测试的重要性,分析不同类型的自动化测试工具和框架,并深入讨论实施自动化测试的最佳实践。通过案例研究和数据分析,我们将揭示如何有效整合自动化测试到软件开发生命周期中,以及它如何帮助团队提高测试效率和覆盖率。 ##
62 1
|
1月前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
66 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
27天前
|
JSON API 数据格式
淘系等商品评论Json数据格式参考,API接口测试
通过以上示例和说明,你可以了解淘系商品评论的JSON数据结构和如何使用相关API接口获取评论数据。在实际操作中,你需要参考具体的API接口文档和开放平台的相关说明进行配置和调用。
|
1月前
|
Java 测试技术 API
探索软件测试中的自动化测试框架
本文深入探讨了自动化测试在软件开发中的重要性,并详细介绍了几种流行的自动化测试框架。通过比较它们的优缺点和适用场景,旨在为读者提供选择合适自动化测试工具的参考依据。
|
1月前
|
数据管理 测试技术 持续交付
软件测试中的自动化测试策略与最佳实践
在当今快速迭代的软件开发环境中,自动化测试已成为确保软件质量和加速产品上市的关键手段。本文旨在探讨软件测试中的自动化测试策略,包括选择合适的自动化测试工具、构建有效的自动化测试框架以及实施持续集成和持续部署(CI/CD)。通过分析自动化测试的最佳实践,本文为软件开发团队提供了一系列实用的指南,以优化测试流程、提高测试效率并减少人为错误。
71 4
|
1月前
|
监控 测试技术 定位技术
探索软件测试中的自动化测试框架选择与实施###
本文不概述传统意义上的摘要内容,而是直接以一段对话形式引入,旨在激发读者兴趣。想象一下,你是一名勇敢的探险家,面前摆满了各式各样的自动化测试工具地图,每张地图都指向未知的宝藏——高效、精准的软件测试领域。我们将一起踏上这段旅程,探讨如何根据项目特性选择合适的自动化测试框架,并分享实施过程中的关键步骤与避坑指南。 ###
51 4
|
1月前
|
测试技术 持续交付 数据安全/隐私保护
软件测试的艺术与科学:探索自动化测试框架
在软件开发的世界中,测试是确保产品质量的关键环节。本文将深入探讨自动化测试框架的重要性和实现方法,旨在为读者揭示如何通过自动化测试提升软件测试效率和准确性。我们将从测试的基本概念出发,逐步引导读者了解自动化测试框架的设计和实施过程,以及如何选择合适的工具来支持测试活动。文章不仅提供理论知识,还将分享实用的代码示例,帮助读者将理论应用于实践。无论你是测试新手还是经验丰富的开发者,这篇文章都将为你打开一扇通往更高效、更可靠软件测试的大门。
39 1
|
28天前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
90 11
|
2月前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
76 3