前言:
这是一篇关于月神SRC逻辑漏洞课程的学习笔记,因为我现在没有小钱钱所以买的是某宝的19期盗版课,如果后续赚钱了肯定是要支持一手正版的,但是现在嘛,先学吧,当然b站也有相关课程只不过需要包月充电
越权:
解释:
能够做到自己权限以外的事情,并且对系统产生了危害,这就叫越权
后端忘记针对某功能做权限校验,导致了该漏洞的出现
同时越权分为横向越权(水平)和纵向越权(垂直)
横向越权的解释:
我们可以操作其他跟我权限一样的用户,比如你是这个平台的用户,我也是这个平台的用户,但是我能通过漏洞操作你的账户,这就是横向越权、
例:别人家的东西,我通过魔法变走了
纵向越权的解释:
我们可以操作我未拥有的权限的账户或者权限比我高的账户,比如我是这个平台的用户,但是我能通过漏洞操作管理员或者组长等等权限比我高的用户,这就是纵向越权
例:我冒充老板同意了买家的退款申请
案例1:
在登录账号时,我将UID(user id)改成了别人的UID,导致我能够登录上别人的账号,这就是一个水平越权(意思是一样的,只不过我习惯叫水平越权了)漏洞,也叫任意账号登录,所以正确做法是不传uid这种参数,只接受用户输入的账号和密码进行校验
案例2:
别人填写的收货地址,我在查询我自己收货地址时将地址ID改掉了,导致我查询到别人的地址,这也是一个越权漏洞,也叫敏感信息泄露
案例3:
我上传身份证后,在查看我上传信息时将查询该事件的id改成了别人的,导致我查询到了别人的身份证信息,这就是一个越权漏洞了
案例4:
我是一个主播,在我自己的直播间禁言用户,我抓到这个数据包,将数据包里面的直播间id修改成别人直播间的id,如果能禁言,就相当于我有了在其他直播间主播禁言用户的权力,这也是一个越权漏洞
其他越权:
越权不仅仅只是这些id,还有很多情况,比如我们知道了管理员权限的请求包,使用一个普通的用户来请求这个包能进行操作,这也是越权(垂直越权)
还有其他情况,比如:越权使用代金卷,越权修改地址,越权设置管理员
小总结:
针对越权漏洞,我们要做到的就是找到我们认为可以越权的参数,例如常见的id参数,比如userid、couponid、address
针对不同的业务要做不同的修改,比如在直播课程中,我们打字发消息抓包后修改带有roomid的参数,信息是不是就有可能会出现在其他的直播间
并发漏洞:
解释:
用户a向后端发起购买请求,后端收到请求去数据库里面查询用户余额,然后后端认为用户余额够就下发商品,但是用户a如果用并发的方式发起请求,后端同时向数据库发起多次请求,返回成功但是还没有到扣费那一步,这就导致了用户可以购买超出自身余额的商品
图解:
正常情况下,用户下单商品后会向服务器发起请求,然后服务器会执行查询余额,扣除余额,返回商品的操作
但是,当我们使用同一个账户进行并发操作时,就是一次发送多个请求(在很短的时间内),那么服务器也会执行多条查询余额的操作,但是请求的间隔非常短,这就导致第一次购买商品的请求还没扣除余额,第二次请求查询的结果就返回了,第三次也是
打个比方,比如我们账号上有2块钱,购买一瓶水是2块钱,我的第一条请求购买一瓶水,查询金额时数据库显示的是有两块,然后会进行扣除余额的操作,但是第二次和第三次请求与第一次请求间隔非常短,在第一次请求还没扣除余额前,第二次和第三次请求执行了查询余额操作,数据库同样返回的是还有2块钱,所以当开始扣除操作时,三次请求也都会扣除余额,然后就购买成功了,当然账号余额也变成负的了,但是我们通过这个操作购买了超出自身余额的商品,这就是并发漏洞
出现场景:
次数:
最常见的并发时针对次数限制的条件,使用并发的方式绕过它的限制
金额:
还有针对金额方面的并发,比如使用余额操作,提现操作,并发创建订单
场景一:
商城购买一部手机,新用户优惠价1000元,每人限购一台,小月使用了一张100元代金卷进行支付
这个时候可以并发请求,绕过每人购买一台的限制,或者请求同一个代金卷,绕过只能使用一次的限制
场景二:
小说阅读,连续签到七天可以0.01购买一个新用户大礼包
这时就可以并发很多个订单或者并发签到,从而绕过只能购买一个新用户大礼包的限制和连续签到七天的限制
支付安全:
漏洞判断:
新用户首单优惠,通过大量注册新用户账号薅羊毛这并不算一个安全漏洞,但是可能时一个安全情报
新用户首单优惠,将优惠商品的数量改掉了,导致用户购买了多个优惠的商品,这算是一个漏洞
越权帮别人付款,这并不是一个漏洞,毕竟亏损的是自己,对别人没有影响
越权帮别人付款,但是使用了我的优惠卷,这就是一个漏洞了,为什么?比如一个账号限制使用一次优惠充值卷,如果我自己的账号使用过了,那我在使用一个别的账号使用那个好的优惠卷充值我这个账号的金额,是不是就绕过了一个账号只能使用一次的限制,所以这是一个漏洞