登录模块测试,验证码测试,修改密码模块测试
输入输出模块测试,业务未授权访问模块测试,回退模块测试
业务办理模块测试,业务数据安全测试,业务接口模块测试
登录模块测试:
1:登录暴力破解测试:建议 修改验证码过期时间,或者单位时间内的失败尝试次数
2:本地加密传输数据:
3:登录失败信息测试:登录失败时,系统会明确回显用户登录失败的信息
4:cookie仿冒测试:对cookie中会话身份标识进行篡改 建议用户敏感信息数据,用session会话方式
5:session会话注销测试:当用户退出系统时,应将客户端的session清除,未及时消除,该认证会话会持续有效
6:session会话超时测试:
验证码测试:
1:验证码暴力破解:没有对验证码的失效时间和尝试失败的次数做限制,攻击者就可尝试在这个区间做暴力破解 建议:设置验证码失效时间,限制单位时间内的重复尝试次数
2:验证码重复使用测试:验证成功时 没有及时清除session,导致首次认证后可重复使用
3:验证码响应包绕过测试:注册账号填写任意验证码,提交并抓取响应包,修改返回信息,看是否注册成功
修改密码模块测试:
1:验证码暴力破解:建议:设置验证码失效时间,限制单位时间内的重复尝试次数
2:接口参数账号修改测试:找回密码往往要传递用户账号,用户账号作为可变参数可以被篡改,最终形成任意账号密码修改的漏洞
3:response包状态值修改测试:
4:session覆盖测试:A的账号在密码找回页面接收验证码,输入正确进入更改密码页面,然后打开新页面进入找回密码第一步,输入B的手机号,虽然无法得知,
但服务端已经将当前的session设置为B的,在刷新A手机号即可重置b的密码,实现任意密码修改
建议:以控制当前session的方式 篡改了要重置密码的账号,在重置密码请求中,要对修改的账号和凭证做进一步校验
输入/输入模块测试:
SQL注入测试: and 1=1 'or '1'='1 %27 如果存在,具体可用sqlmap
XSS 测试:反射型一般url或输入框内 存储型主要留言板,投诉,建议,新建等输入框
命令执行:如果有命令执行,可使用配合绕过或命令连接符 建议尽量少用执行命令函数或直接禁用,做白名单策略
业务未授权访问模块测试:
1:未授权访问测试:登录需要认证的页面,切换浏览器再次访问此页面,访问成功则存在未授权访问漏洞
2:水平越权测试:A账户信息,抓包更改账户身份ID,成功查看同权限其他账户的业务信息
3:垂直越权测试:登录普通账户A,抓包修改账户A的身份id为高权限B的身份id,成功查看高权限账户C的业务信息
回退模块测试:web业务在密码修改(订单付款)成功后,再返回上一级重新修改密码(支付订单)时存在从新修改密码,如果能返回上一步从新操作,则存在回退漏洞
修复建议:对于业务流有多步的情况下,首先判断该步骤是否是上一步骤的业务发起,如果不是则返回错误提示或页面失效
业务办理模块测试
1:订单篡改测试:购买商品 用户和查看顶的详情,如果开发者没有考虑登录后用户间权限隔离的问题,可造成窜改,遍历订单id
建议后台查看订单是要通过session机制判断用户身份,做好平行权限控制,服务端需要检验相应的订单是否和登陆者一致
2:手机号篡改测试
3:用户ID篡改测试 登录时篡改id
4:邮箱和篡改测试 邮箱发送时,抓包篡改发件人参数,导致伪造发信人进行钓鱼攻击等操作
5:商品编号或金额篡改测试
业务数据安全测试:
1:商品支付金额篡改测试:
2:商品订购数量,订购id篡改测试:
3:商品前端js限制数量绕过测试:
4:请求重放测试: 一次购买多次收货 设置token值,避免产生重放订购的情况
商品信息,如金额,折扣,数量,价格等原始数据的校验应来自服务器端,不应该完全相信客户端传递过来的值。类似于跨平台支付业务,涉及平台接口调用,一定
做好对重要数据的完整性,确保业务重要数据完整性
业务接口调用模块测试:
1:接口调用重放测试: 比如飞机票订单重放,进行多次调用
2:接口调用遍历测试:web接口一般将常见的一些功能需求进行封装,通过传入不同的参数来获取数据或执行相应的功能,最常见的就是通过接口传入id
使用bp的爬虫功能在根目录爬虫,过滤参数,只留下含有id的参数,发送的intruder模块遍历
3:接口调用参数篡改:在短信验证码,邮件验证码调用业务环节中,修改对应请求的手机号,如果修改后的手机号接收到信息,则表示接口调用参数可篡改
建议:会话session中储存着重要凭证,在忘记密码,重新发送验证码等业务中,从session获取用户的凭证,而不是从客户端的请求参数中获取
4:接口未授权访问/调用测试:业务中,敏感功能的接口需要验证用户的凭证才能正常调用接口数据,如果没有进行身份校验,攻击者无需登录或验证,就可直接调用接口数据
先爬虫,然后只看script,xml,othertext(json)等,在对应接口中查看响应中的敏感数据,复制url,如果返回敏感信息 证明漏洞存在,如果登录验证后才能访问,就不存在
5:callback自定义测试: