安全测试通用用例

简介: 安全测试通用用例

阅读需知


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


漏洞扫描


定义:对系统的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 onerror=alert(1)>

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

是否会有弹窗

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

同上

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

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

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

同上

 


文件上传


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

步骤 结果

生成一个测试的恶意文件,如一个txt文档,内容为<img src=x onerror=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

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

相关文章
|
7月前
|
测试技术
包含用例执行时间的测试报告代码
包含用例执行时间的测试报告代码
|
7月前
|
NoSQL 安全 测试技术
接口测试用例设计的关键步骤与技巧解析
该文介绍了接口测试的设计和实施,包括测试流程、质量目标和用例设计方法。接口测试在需求分析后进行,关注功能、性能、安全等六项质量目标。流程包括网络监听(如TcpDump, WireShark)和代理工具(Charles, BurpSuite, mitmproxy, Fiddler, AnyProxy)。设计用例时,需考虑基本功能流程、输入域测试(如边界值、特殊字符、参数类型、组合参数、幂等性)、线程安全(并发和分布式测试)以及故障注入。接口测试用例要素包括模块、标题、优先级、前置条件、请求方法等。文章强调了保证接口的幂等性和系统健壮性的测试重要性。
|
3月前
|
测试技术
软件测试用例设计之微信群抢红包经典用例
作者在浏览招聘网站时遇到为微信群发和抢红包设计测试用例的问题,作为软件测试新手,作者通过实际体验并撰写测试案例来加深对业务的理解,并分享了测试案例表格。需要注意的是,该用例未考虑添加银行卡支付、红包类型选择及红包描述。
92 5
软件测试用例设计之微信群抢红包经典用例
|
3月前
|
人工智能 测试技术 Python
基于 LangChain 的自动化测试用例的生成与执行
本章节详细介绍了如何利用人工智能技术自动化完成Web、App及接口测试用例的生成与执行过程,避免了手动粘贴和调整测试用例的繁琐操作。通过封装工具包与Agent,不仅提升了测试效率,还实现了从生成到执行的一体化流程。应用价值在于显著节省时间并提高测试自动化水平。
|
3月前
|
测试技术
基于LangChain手工测试用例转App自动化测试生成工具
在传统App自动化测试中,测试工程师需手动将功能测试用例转化为自动化用例。市面上多数产品通过录制操作生成测试用例,但可维护性差。本文探讨了利用大模型直接生成自动化测试用例的可能性,介绍了如何使用LangChain将功能测试用例转换为App自动化测试用例,大幅节省人力与资源。通过封装App底层工具并与大模型结合,记录执行步骤并生成自动化测试代码,最终实现高效自动化的测试流程。
|
4月前
|
测试技术
基于LangChain手工测试用例转Web自动化测试生成工具
该方案探索了利用大模型自动生成Web自动化测试用例的方法,替代传统的手动编写或录制方式。通过清晰定义功能测试步骤,结合LangChain的Agent和工具包,实现了从功能测试到自动化测试的转换,极大提升了效率。不仅减少了人工干预,还提高了测试用例的可维护性和实用性。
|
4月前
|
人工智能 自然语言处理 测试技术
基于LangChain手工测试用例转接口自动化测试生成工具
本文介绍利用大语言模型自动生成接口自动化测试用例的方法。首先展示传统通过HAR文件生成测试用例的方式及其局限性,随后提出结合自然语言描述的测试需求与HAR文件来生成更全面的测试脚本。通过LangChain框架,设计特定的提示词模板,使模型能够解析测试需求文档和HAR文件中的接口信息,并据此生成Python pytest测试脚本。示例展示了正常请求、非法请求及无效路径三种测试场景的自动化脚本生成过程。最终,整合流程形成完整代码实现,帮助读者理解如何利用大模型提高测试效率和质量。
|
4月前
|
存储 测试技术 API
apifox实例应用-自动化测试用例for循环的使用
总结来说,通过在Apifox自动化测试用例中结合for循环的使用,我们可以有效地对接口进行批量测试,提升测试效率和覆盖率。同时,通过参数化测试数据的灵活应用,能够确保我们的接口在不同的输入条件下都能保持正确的行为。这种方法能够显著减少手动测试工作量,同时通过标准化的流程确保测试的一致性。
317 0
|
6月前
|
人工智能 测试技术 索引
基于LangChain手工测试用例生成工具
使用Python的LangChain框架,测试工程师能自动化从需求文档生成思维导图。代码示例演示了如何加载文档,提取信息,创建向量索引,执行检索,并通过PlantUML生成MindMap图像。流程中,AI替代了手动梳理需求和创建测试用例的过程,涉及的关键组件包括TextLoader、OpenAIEmbeddings、FAISS检索和AgentExecutor。该实践帮助掌握LangChain的检索和Agent功能,以实现文档到测试用例的智能转换。
|
5月前
|
测试技术 Apache
单元测试策略问题之设计有效的单测用例问题如何解决
单元测试策略问题之设计有效的单测用例问题如何解决