首页 > 技术文章 > 业务逻辑测试点笔记

Qiuzhiyu 2020-04-11 15:02 原文

收集作为备忘

注册

任意用户注册
短信轰炸/验证码安全问题/密码爆破
批量注册用户
枚举用户名/进行爆破
SQL注入/存储型XSS

登陆

短信轰炸/验证码安全问题/密码爆破
SQL注入
可被撞库
空密码绕过/抓包把password字段修改成空值发送
认证凭证替换/比如返回的数据包中包含账号,修改账号就能登陆其他账号
权限绕过/Cookie仿冒
第三方登陆,可以修改返回包的相关数据,可能会登陆到其他的用户
有一些网址的后台登陆验证,如果检测登陆失败会返回302状态码,然后js跳转到首页,这个时候可以修改返回包的信息,状态码改成200,然后删除js代码即可进入后台。
session覆盖
session覆盖(也可以说是Cookie混淆),意思就是说不管使用那个用户进行重置密码操作,
session都是固定了,只是绑定的用户不同(有时候只是用户的登陆状态不同,所以sessionid固定也会导致会话固定漏洞)。
简单的说:就是第二次发送给服务端的session覆盖了第一次发送给服务端的session,从而通过了验证。
利用方法:使用攻击者的账号走重置密码的流程,到最后一步也就是提交新密码时不要点击提交或者使用burp拦截请求包,
在同一浏览器中打开重置密码的页面,使用受攻击者的账号走流程,到需要输入手机验证码的时候,session就已经和收攻击者的账号绑定在一起了。
再将之前我们拦截的提交新密码的请求放行,这时后台程序修改的将是受攻击者账号的密码。
 

密码找回

短信邮箱轰炸/短信邮箱劫持
重置任意用户密码/验证码手机用户未统一验证
批量重置用户密码
新密码劫持/直接跳过验证步骤
本地验证,修改返回值

购买支付/充值

交易金额/数量修改,交易金额不一定非要0.01,有时候1.00也行
交易信息订单编码/导致信息泄露
整数溢出,int最大值为2147483647,超过最大值
修改充值账户
请求重放多次下单,高并发操作
如果返回当参数中有一些奇怪的参数,可以把这个而参数添加到请求包中然后重发

抽奖活动

抽奖作弊
刷奖品/积分
高并发点击,在签到,转账,兑换,购买业务可以试一试

优惠券/代金券

刷优惠券/代金券
修改优惠券金额/数量

运费

修改运费金额

订单信息

订单信息遍历/泄露
订单信息泄露导致用户信息泄露
删除他人订单

会员系统

修改个人信息上传文件,上传带弹窗的html
如遇上上传xlsx/docx,可能存在xxe,上传恶意的文档盲测
图片上传也可能遇到imagereagick命令执行,上传恶意图片
视频上传如果使用ffmpeg<3.2.4(视频按帧分割成图片),上传恶意avi盲测ssrf
用户横向越权访问/遍历/导致用户信息泄露
SQL注入/个人简介处存储XSS

传输过程

明文传输账号密码
修改信息处无session/token导致csrf
POST/COOKIE注入

评论

POST注入/存储XSS
无session/token导致CSRF

漏洞处

验证码问题

万能验证码0000,8888,1234
返回包中存在验证码
删除验证码或者cookie中的值可以爆破账号密码

短信轰炸

重放数据包
删除修改cookie,或者检测数据包是否有相关参数,直接删除或者修改,然后重放数据包
手机号前面加 +86,或者手机号后面加空格之类的,然后重发数据包
请求参数修改大小写,或者添加请求参数比如&id=1
一个站的登陆处可能做了防护,但是再找回密码处可能没有安全防护,或者在注册流程中没有安全防护,所以说多测试接口
如果存在批量注册用户的话,每个用户可以发送短信5次,也能实现批量轰炸

水平越权

主要登陆后还是修改参数,主要找到多个接口不断测试
关注网页源代码,有时候会有表单,但是被bidden(隐藏标签)给隐藏起来了,可以修改返回包然后尝试获取数据检测
多个账号,主要分析请求参数

数据泄露

在找回密码处,填写数据后抓包查看返回信息,有可能存在敏感数据返回

任意用户密码重置

目前大部分都是在修改密码处参数修改,将用户名的参数修改成其他用户名
有些是通过前端验证,使用bp修改返回数据包,如何才能知道正确的数据包是怎么样的?直接试一试不就知道了- -

推荐阅读