安全测试通用用例

阅读需知

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

漏洞扫描

定义:对系统的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

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

posted @ 2019-12-26 13:17  小菠萝测试笔记  阅读(3240)  评论(0编辑  收藏  举报