常见测试点
# 常见测试点
# 验证码相关
检查项 | 描述 | 操作步骤 |
---|---|---|
验证码爆破 | 1.是否容易识别 2.错误后是否会更新验证码 | 验证码识别: 1. 查看验证码中的内容是否一眼就可辨别 2. 截图验证码去验证码识别的网站进行识别,是否能识别 验证码更新: 1. 输入错误的验证码后提交,是否提示验证码错误,且验证码刷新 2. 输入的用户名或密码错误后,验证码是否刷新 3. 页面刷新时,验证码是否刷新 |
验证码可重复使用 | 是否存在验证码可使用多次 | 1. 输入的用户名和密码错误后,重新输入时使用之前的验证码提交数据,是否可以提交数据 2. 登录成功后,注销重新登录时,使用之前的验证码,是否可以登录 |
后端校验验证码 | 验证码是否可被绕过 | 1. 直接使用接口工具,传入用户名和密码,不传入验证码,直接登录,查看后端是否检验验证码 |
验证码有效期 | 验证码是否有有效期 | 1. 发送验证码成功后,一定时间后,是否会失效过期 2. 使用该失效的验证码进行登录是否能登录成功 |
验证码内容在返回数据中 | 请求接口中是否返回了验证码信息 | 1. 使用发送验证码接口,发送验证码 2. 看接口返回的数据中是否有验证码相关的信息 |
验证码是否设置上限 | 短信验证码发送是否有上限 | 1. 频繁发送短信验证码,是否有限制 |
# 密码相关
检查项 | 描述 | 操作步骤 |
---|---|---|
默认口令 | 是否存在默认密码,如有,则登录后需要强制修改 | 1. 登录时使用默认的密码,登录成功后有强制修改密码的提示信息 2. 未在规定时间修改密码后,不能使用之前默认的密码登录 |
弱口令 | 密码强度不足 | 1. 设置密码时是否可以包含数字、大小写字母、特殊字符等 2. 密码长度是否不小于 8 位 |
密码加密 | 提交数据时,密码是否加密传输 | 1. 提交数据时,接口抓包,看传的密码参数是否加密 |
密码加密存储 | 数据库中密码是否以加密的形式存储 | 1. 可以查看用户表中所存储的密码是否加密 |
密码重复使用 | 新旧密码是否重复 | 1. 修改密码时,输入之前旧的密码,是否有提示信息提示不能与旧的密码一致 |
密码锁定 | 密码错误达限后锁定 | 1. 输入的密码错误达上限之后,重新再输入时提示密码被锁定,XX 后在试的提示信息 2. 已过锁定的时间,重新输入密码时是否能正常输入 |
密码可复制 | 密码框是否不允许复制粘贴 | 1. 输入在密码框中的密码,是否能被复制 2. 是否复制内容在密码框中进行粘贴 |
# 登录相关
检查项 | 描述 | 操作步骤 |
---|---|---|
登录失败 | 登录失败的提示是否模糊 | 1. 登录失败时,提示信息是否模糊,如:用户名或密码错误 |
记住密码 | 登录成功后记住密码 | 1. 登录成功后,注销重新登录时,是否记住之前输入的密码 |
cookie 或 token 过期 | 授权的 cookie或 token 过期 | 1. cookie 或 token 过期后,访问需要授权的页面是否跳转到登录页 2. 使用接口工具,使用之前已过期的 token 进行登录,是否登录失败 3. 登录成功后,修改本地缓存中的 token 信息,使用已过期的,刷新页面是否会跳转至登录页 |
生成的 token 或cookie 是否有规律 | 1. 多次登录后,查看接口返回的 token 或 cookie 数据是否存在一定的规律,防止伪造 |
# 权限相关
检查项 | 描述 | 操作步骤 |
---|---|---|
越权访问 | 是否存在越权获取非本账号(权限,角色)的数据 | 1. 账户 A 和 B 的权限不一致,使用 A 账户登录,是否可以查看 B 用户中的数据 |
权限越界 | 是否存在可获取高级别的权限角色 | 1. 使用低级别的账号登录 2. 在浏览器中输入高级别账号可访问的页面,是否能访问,是否有提示权限不足 |
列目录或资源文件漏洞 | 是否存在可以访问在网页上访问到服务器的目录和文件 | |
未授权访问 | 是否存在可访问未授权的接口(无token) | 1. 无token时,访问需要token的接口,是否不能访问,提示没有登录 |
使用其他账户的token访问 | 小程序的token 是否可以登录管理后台 | 1. 小程序登录后,复制 token 2. 使用 Burp Suite 安全工具或抓包工具 fiddler 拦截登录接口,伪造返回数据,将小程序端中获得的 token 放在接口返回的数据中 3. 放开接口,正常登录,看是否能正常登录成功 |
# 文件上传
检查项 | 描述 | 操作步骤 |
---|---|---|
上传文件漏洞 | 是否存在可上传恶意修改文件头的文件 | |
越权下载文件漏洞 | 是否存在可下载权限以外的文件 | 1. 登录成功后,使用当前用户的权限,下载不在权限范围内的文件,是否能正常下载 |
检查文件类型 | 前后端是否都校验文件类型 | 1. 上传文件时,使用抓包工具抓取上传的接口,进行断点,修改文件的类型后,发送,后端是否校验文件类型 2. 使用抓包工具或安全工具,拦截接口,将 content-type 的类型修改为其他的类型,看前端是否能上传相应类型的文件 3. 修改文件的类型为限制的类型,上传,上传成功后是否能正常打开 |
# 接口相关
检查项 | 描述 | 操作步骤 |
---|---|---|
接口加密 | 接口是否完成验签和数据加密 | |
使用https协议 | 访问接口是否使用 https 协议传输 | 1. 接口协议是否使用的是 https 协议,保障安全性 |
接口防重提交 | 并发请求接口是否存在重复提交(如新增、报名、预订,下单等) | 1. 对一些新增的接口,可使用接口工具对某一个接口设置多个进程同时访问,是否有防重提交限制 |
接口限流 | 接口是否设置了限流,防止 DDoS 攻击 | 1. 可使用工具 Jmeter 或脚本对接口进行大量的访问,是否有限流设置 |
接口暴露关键信息 | url 中是否暴露关键信息,如 id 等 | 1. url 中是否有明显的关键信息显示,如 userid、订单 id 等 |
反射性 XSS 攻击 | 页面输入框是否过滤特殊字符 | 1. url后面加上一些语句,如:;是否有弹窗 2. 系统中可输入的地方输入上述类似的内容后提交,查看是否会有弹窗 |
CSRF跨站请求伪造 | 请求头中的 Referer 字段是否被验证 | 1. 使用抓包工具抓取一个正常的请求包,去掉请求头中的Referer 中的值,重新提交,是否有效 2. 查看不同接口请求,Referer 值是否有边防变动 |
# 系统服务相关
检查项 | 描述 | 操作步骤 |
---|---|---|
服务端口是否默认 | 常用的服务端口是否使用默认的端口 | 1. telnet 端口是否修改 2. mysql 是否使用默认端口 3306 3. ssh 是否使用默认 22 端口 |
一些默认端口是否关闭 | 一些默认端口且不常用的端口是否关闭 | 1. 是否关闭远程连接 3389 端口 |
(完)