注册模块上线前安全测试checklist
字数 1324 2025-08-18 11:39:19
注册模块安全测试Checklist - 详细教学文档
一、注册模块可见性测试
1.1 面向大众的注册模块
- 检查注册功能是否放置在明显位置(如FreeBuf的注册功能)
- 确保注册流程简洁明了
1.2 内部使用的注册模块
-
黑盒测试方法:
- 目录扫描寻找隐藏注册接口
- 审查HTML源代码(查找注释中的注册信息)
- 爬取JS文件寻找注册接口
- 社工思维猜测(如从login地址推测regist地址)
-
白盒测试方法:
- 直接获取开发人员提供的注册地址
- 检查地址是否容易被猜解
二、用户真实性验证测试
2.1 验证方式检查
- 检查是否采用手机/邮箱验证
- 验证方式包括:
- 短信/邮箱验证码
- 注册链接发送到邮箱
2.2 验证绕过测试
- 拦截响应包检查是否直接返回验证码
- 人脸识别系统测试:
- 使用动态图片/小视频绕过
- 参考AE制作人脸动画技术
2.3 前端验证测试
- 修改返回包参数(如code=-1改为code=0/1)
- 修改status=false改为status=true
2.4 延迟验证测试
- 检查"稍后验证"功能是否存在越权漏洞
- 验证未验证用户是否能获取已验证用户的权限
三、短信/邮箱轰炸测试
3.1 重放攻击测试
- 使用BurpSuite重放验证码发送请求
- 检查是否仅在前端进行限制
3.2 限制策略检查
- 时间间隔限制(通常60秒)
- 发送次数限制(通常5次)
四、用户名校验测试
4.1 用户名遍历
- 拦截用户名校验请求
- 使用Intruder模块+常用用户名字典进行遍历
- 对存在的用户名进行弱口令爆破
4.2 二次注册风险
- 检查未校验用户名是否导致:
- 密码重置漏洞
- 账号覆盖风险
4.3 SQL注入风险
- 检查用户存在性查询是否存在SQL注入
- 测试select语句过滤情况
五、SQL注入与XSS测试
5.1 SQL注入测试
-
Insert注入测试:
- 构造恶意payload插入SQL语句
- 示例payload:
'wangwu'or updatexml(1,concat(0x7e,(users())),0) or''
-
二次注入测试:
- 注册时过滤但后续查询未过滤的情况
5.2 XSS测试
- 测试用户名、昵称、地址等字段
- 绕过长度限制方法:
- F12修改输入框maxlength属性
- 拆分payload到多个输入框拼接
六、权限提升测试
6.1 管理员注册测试
- 检查注册请求是否包含角色参数
- 尝试添加role_id=1(管理员角色)参数
- 测试注册后获得的权限级别
七、文件上传测试
7.1 任意文件上传测试
- 测试头像、营业执照等上传功能
- 尝试上传恶意文件(如webshell)
- 检查文件类型、内容、扩展名验证
八、其他安全测试
8.1 XXE测试
- 当请求参数为XML格式时
- 测试XML外部实体注入漏洞
8.2 Fastjson测试
- 当请求参数为JSON格式时
- 测试Fastjson反序列化漏洞
测试工具推荐
- BurpSuite - 用于请求拦截、重放和Intruder攻击
- 目录扫描工具(如DirBuster)
- JS文件分析工具
- AE软件(用于制作绕过人脸识别的动画)
- SQL注入测试payload集合
- XSS测试payload集合
注意事项
- 黑盒测试时需谨慎操作,避免影响生产环境
- 白盒测试应结合代码审计进行
- 所有测试应在授权范围内进行
- 发现漏洞后应及时报告并记录修复方案