平时接触的一大半都是逻辑漏洞,很多时候其实也不算漏洞,只是功能设计有缺陷,更多的是需要改变思路,想出利用场景,改个数据包轻松高危。
越权类
修改id越权
1、在关注、点赞、评分等功能如果出现userid,可以通过遍历userid刷量。
2、修改uid越权查看个人信息、订单记录、聊天记录等等。
3、如果没有id字段,可以尝试添加一个user_id之类的字段,这个字段可能是其他接口有,这个接口前端没写,但实际也是可以用的。
4、也可以尝试修改内容id新建或删除评论、视频等。
权限绕过
密码重置
1、验证码暴力破解
一般是在手机号后加特殊字符绕过次数限制,比如前面加0,后面加空格或者其他字符,可以fuzz
参考https://wooyun.x10sec.org/static/bugs/wooyun-2012-011720.html
2、重置token可猜测
有案例用的是时间戳
还有可能重置链接的key是手机号+验证码的md5
3、越权
可能会有accountid/userid之类的参数,尝试修改。有些没有校验签名,校验签名的话逻辑也在js里,可以自己调一下。一般就是参数加个字符串哈希一下。
可能前面校验手机号验证码返回token了,后一步的userid参数却没校验,可以修改最后一步的参数重置密码。
参考https://wooyun.x10sec.org/static/bugs/wooyun-2013-018263.html
4、修改返回值
前端验证,修改返回包里的邮箱/手机号/id进入下一步。抓包时请求和返回包都要看,也可能在cookie里。
5、改参数键
可以尝试加或者删参数,比如把验证问题删掉,或者加个userid参数尝试修改其他id,也可以多写一个id参数,类似参数污染。
6、session覆盖
感觉挺少见的,参考https://wooyun.x10sec.org/static/bugs/wooyun-2014-085843.html
微博oauth
1、正常登录后修改返回包中的uid
2、获取access_token后登录其他app,同时修改access_token和uid
付费绕过
好友验证绕过
支付相关
充值
1、观察是否有productid之类的参数,尝试修改为价格更低的产品。
2、观察是否有amount之类的参数,修改为小数字或负数。
3、创建低价订单,替换订单id
4、充非常大的数或者买非常多数量的产品(1073741824/2147483647),可能整数溢出(高危),也可能截到一个相对小一些的数(低危或忽略)。
签约
首月优惠、会员升级、优惠券等。
1、二维码如果可以同时用微信或支付宝扫,就各扫一次再分别支付,可能开通两个月。
2、用没钱的卡支付,创建多个优惠订单再支付获取多次优惠。
3、用两个手机,都停在支付页面,先开通一个后取消自动付费再用另一个开通。
优惠券
1、并发领多张
2、修改id领以前的优惠券
其他
并发
1、并发领奖励
2、并发提现
3、并发支付
4、并发送礼物
5、并发刷赞
短信轰炸(横向、纵向)
删cookie、加空格、加0
改图片长宽导致dos
细心看每个数据包就行了,挺有意思的,也没啥意思。