安全测试的通用用例整理

阅读需知

这是总结的是一些通用安全测试用例,但安全测试远不如此,这些用例只能算入门!!

漏洞扫描

定义:对系统的URL进行漏洞扫描,扫描系统开放的端口、服务和存在的漏洞

前置条件

步骤

结果

我们公司用绿盟扫描器

登录扫描器进行WEB扫描

在漏洞扫描中选择WEB扫描,输入待扫描的URL地址

查看扫描报告是否有漏洞,其中高风险和中风险漏洞需要修复

查看扫描报告是否有漏洞,其中高风险和中风险漏洞需要修复

1、确认高风险和中风险漏洞都修复完成

2、修复风险后需注意不要影响系统原先功能的正常性,建议做影响范围的功能回归测试,保证系统正常

定期检查

同一个URL,3个月内扫描一次

明文传输

定义:对系统传输过程中的敏感内容是明文&密文进行检查

系统传输敏感信息场景:登录、注册、支付、修改密码

系统敏感信息:登录密码、支付金额、注册的手机号码、身份证、邮箱等信息

步骤

结果

对传输敏感信息场景进行抓包

分析其数据包中的相关敏感字段是否为明文

分析其数据包中的相关敏感字段是否为明文

越权访问

定义:测试能否通过URL地址获取管理员及其他用户信息

1、出现admin、user、system、pwd等敏感目录的URL地址

如:https://walmon-competition.gz.cvte.cn/competition_api/admin/v1/user/role_user_unit

2、垂直越权场景:当系统存在多个不同权限的管理员时,低权限的管理员不能访问或操作到高权限的管理的资源

3、水平越权场景:当系统存在多个需要登录用户,A用户不能访问B用户的资源

步骤

检查URL是否存在admin/user/system/pwd等敏感目录

垂直越权:

1.使用高权限的管理员登录后,访问一些他独有的资源,或者进行一些特权操作,记录下接口信息

2.退出登录后,使用低权限用户登录,重新执行步骤1记录下来的接口,查看是否能够操作成功

水平越权:

1. 使用A用户登录后,打开A用户所独有的个人资源的URL或者进行一些修改操作,记录下接口信息

2. 退出登录后,使用B用户登录,重新执行步骤1记录下的接口,看是否能够访问或者操作成功。

反射性跨站脚本

定义:测试系统是否对输入进行过滤或转移,规避用户通过跨站脚本攻击造成风险

跨站脚本攻击场景:搜索框、输入框、留言、上传文件

步骤

结果

在系统的URL地址后面,输入测试语句:

<img src=x οnerrοr=alert(1)>

<script>alert("1") </script>;

是否会有弹窗

在系统的搜索框、输入框、留言,输入测试语句:

同上

像留言、评论、公告等输入内容都会存到数据库

前端查看对应内容时是否会有弹窗

在上传文件功能中,往需要导入的文件中输入测试语句:

同上

文件上传

定义:测试能否上传木马、病毒、色情图片等恶意图片

步骤

结果

生成一个测试的恶意文件,如一个txt文档,内容为<img src=x οnerrοr=alert(1)>

文件名字最好为英文,如test

点击上传功能,抓包拦截上传接口,将上传的文件后缀修改为html文件(访问该html文件)

可正常执行恶意语句,则有错

越权文件下载

定义:测试URL中是否包含文件名或文件目录,尝试提交参数值查看是否可下载或读取其他目录的文件内容

文件下载场景:文件下载、文件读取功能

测试url:包含文件名或文件目录的url

步骤

结果

进行文件下载操作,找到文件下载路径

http://www.example.com/donwload.jsp?filename=test12789.pdf

修改下载路径中的文件参数值,检查访问效果

http://www.exbugmpjsp?filename=test.pdf

如果可以下载修改后的文件,则证明存在漏洞

修改下载路径,通过../对路径进行跳转尝试下载其他目录下的文件

http://www.example.com/donwload.jsp?filename=../../WEB-INF/web.xml

如果可以下载web.xm文件,则有bug
 

短信/邮箱验证

定义:测试短信、邮箱验证方式是否进行安全设置

触发短信、邮箱验证码验证相关的场景:找回或重置密码、注册、邀请注册、引流活动分享

步骤

结果

操作密码重置、找回密码等功能,触发跳转到输入手机号或邮箱的页面

输入测试手机号或邮箱,看能否一直连续无间隔 发送短信验证码,造成短信轰炸

短信轰炸若存在,及证明存在该漏洞,报BUG 触发短信、邮件发送的前提必须有安全验证(验证码、滑动验证等),防止短信被刷

如果有对应的验证设置,输入手机号、邮箱,同步开始抓包,查看数据包能否抓取到发送的验证码信息

如果可以抓取到,则验证码可以被修改,存在漏洞,报BUG
 

鉴权缺失

定义:测试需要登录、鉴权才可操作的系统中可修改资源的相关接口,鉴权是否可靠

测试对象:可以修改资源的接口

步骤

结果

定义:测试需要登录、鉴权才可操作的系统中可修改资源的相关接口,鉴权是否可靠 测试对象:可以修改资源的接口

1、如果参数都是完全可以被预期的话。即除了鉴权的cookie 外,header中和body表单中的所有参数都可以被事先知道。那么表明存在漏洞。报BUG 2、如果header或者body中有随机的token或者需要验证码之类的,则不存在漏洞

抓包、分析接口的参数,观察鉴权参数,如cookie 或者access token等

1、如果观察cookie 或者access token,可掌握其规律,如为某固定单一不变的值或使用用户ID作为cookie 的值,会话控制信息可以被猜测,鉴权不可靠,表明存在漏洞。报BUG

密码健壮性

定义:测试密码、验证码验证的方式是否可靠,是否可以被暴力猜测直至命中

步骤

结果

操作输入密码、验证码的场景,使用抓包工具,修改接口中的密码、验证码,多次尝试输入错误的验证码

可以被暴力猜测直至命中,则存在漏洞

使用工具重复请求接口(类似登录接口)多次(密码错误、验证码错误情况下、100次以上

使用工具重复请求接口(类似登录接口)多次(密码错误、验证码错误情况下、100次以上

检查密码设置、验证码生成的业务逻辑设计

1、若设置密码时就未考虑密码复杂程度,允许用户设置弱密码

(如设置账号必须满足数字+字母+特殊字符,8位以上。规避123456、aaaaaaa、qwerty等弱密码),用户账号安全可能存在漏洞,可反馈给研发进行整改,推进账号安全

2、若验证码生成逻辑简单,或者结果集合小,或为简单的图片验证,则可能存在漏洞,可反馈开发进行整改,尽量使用更安全的验证设计(如行为验证 )

对密码找回及修改密码功能,检查密码是否有权限管控,只能修改或设置自己的密码,规避通过该功能修改别人的密码

若可通过密码找回、修改密码、账号申诉等功能,修改其他人的账号密码,则存在漏洞,报BUG

数据安全

定义:检查系统中敏感数据的存储是否安全

敏感数据:密码、身份证、家庭住址、银行卡号、手机号、真实姓名

步骤

检查敏感数据是否加密存储,检查对应的数据表(mysql、redis)数据记录,防止拖库后信息泄露

检查敏感数据在操作界面展示上是否脱敏 如:密码显示隐藏选项,手机号、身份证仅显示首尾等134****4250,220**********2129

检查数字设置安全,是否限制输入负数或超大数额

<think>嗯,用户的问题是关于通用功能公共测试的设计,他们需要示和模板。首先,我需要理解用户的具体需求。他们可能是在做软件测试相关的工作,或者在学习如何设计测试,需要一些通用的指导。 用户提到的引用内容里提到了登录、购物车、水杯、发红包、微信朋友圈等测试,这说明他们可能希望了解不同功能的测试设计方法,但更偏向于“通用功能”的公共部分。比如,登录、表单提交、搜索功能这些常见的模块,如何设计测试。 接下来,我应该考虑通用测试的设计思路。通常测试需要覆盖正常情况、边界情况、异常情况和特殊情况。比如正常输入、边界值测试、非法输入、性能测试安全测试等。每个方面都需要具体的子,这样用户才能明白如何应用。 然后,我需要整理一个模板,方便用户直接套用。模板应包括用编号、功能模块、前置条件、测试步骤、预期结果、实际结果、测试状态、优先级、测试类型、测试数据等部分。这样用户可以根据模板来填写自己的测试。 另外,用户提供的引用中有一些具体的子,比如登录测试,可以借鉴这些来举说明通用功能的设计。如,登录功能需要考虑用户名和密码的正确性、错误处理、边界情况(如密码长度)、安全测试(如SQL注入)等。 可能用户还希望知道如何将这些测试应用到不同的功能模块中,所以需要分模块举,比如搜索功能、表单提交、文件上传等。每个模块都按照正常、边界、异常、特殊情况进行分类,给出具体的测试。 还要注意引用用户提供的参考内容,比如在登录测试部分,可以引用他们的子,并在末尾加上引用标识[^1]。确保回答符合用户提到的格式要求,比如使用中文,LaTeX的正确使用等。 最后,需要生成相关问题,帮助用户进一步深入思考,比如如何设计性能测试,或者如何维护测试库。这些问题应该与测试设计相关,并且基于用户的需求可能扩展的方向。 总结一下,回答需要结构清晰,先介绍设计思路,再给出模板,然后分模块举,最后附上相关问题。同时确保符合格式要求,正确使用引用,并且语言自然易懂。</think># 通用功能公共测试设计指南 ## 一、测试设计思路 所有功能测试应覆盖四类场景: 1. **正常情况**:验证功能在有效输入下的预期行为 2. **边界情况**:验证输入边界值处理能力(最大值/最小值/临界值) 3. **异常情况**:验证非法输入/错误操作的处理机制 4. **特殊情况**:验证网络中断/系统异常等极端场景的容错能力 ## 二、通用测试模板 ```markdown | 用编号 | 功能模块 | 前置条件 | 测试步骤 | 预期结果 | 实际结果 | 测试状态 | 优先级 | 测试类型 | 测试数据 | |----------|----------|----------|----------|----------|----------|----------|--------|----------|----------| | TC001 | 用户登录 | 系统已安装 | 输入正确账号密码 | 登录成功 | | | P0 | 功能测试 | 有效账号 | ``` ## 三、典型功能用 ### 1. 登录功能 ```markdown | 用类型 | 测试场景 | 预期结果 | |--------------|------------------------------|------------------------| | 正常情况 | 输入有效账号+正确密码 | 登录成功 | | 边界情况 | 密码输入32字符(最大允许值) | 正常登录 | | 异常情况 | 输入SQL注入语句`' OR 1=1 --` | 拦截非法输入并提示 | | 特殊情况 | 登录后断网点击功能 | 显示网络连接异常提示 | ``` ### 2. 搜索功能 ```markdown | 用类型 | 测试场景 | 预期结果 | |--------------|------------------------------|------------------------| | 正常情况 | 输入有效关键词 | 返回相关结果列表 | | 边界情况 | 输入255字符超长关键词 | 正常返回搜索结果 | | 异常情况 | 输入特殊字符`@#$%` | 显示"无相关结果" | | 特殊情况 | 搜索过程中切换页面 | 中断搜索并跳转新页面 | ``` ### 3. 表单提交 ```markdown | 用类型 | 测试场景 | 预期结果 | |--------------|------------------------------|------------------------| | 正常情况 | 填写所有必填字段提交 | 提交成功并生成记录 | | 边界情况 | 数字字段输入允许的最大值 | 数据正常保存 | | 异常情况 | 必填字段留空提交 | 高亮提示必填项 | | 特殊情况 | 提交后快速刷新页面 | 防止重复提交 | ``` ## 四、高级用设计 1. **性能测试**: ```markdown | 场景 | 预期指标 | |--------------------|------------------------------| | 百人并发登录 | 响应时间 < 3s | | 万条数据搜索 | 结果加载时间 < 5s | ``` 2. **安全测试**: ```markdown | 场景 | 验证点 | |--------------------|------------------------------| | 密码传输 | 是否使用HTTPS加密 | | 登录失败锁定 | 连续5次错误后锁定账号15分钟 | ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值