这几天看一些逻辑漏洞的资料,整理了一下关于逻辑漏洞的思路可能不是很全以后慢慢补充。

与传统漏洞相比,逻辑漏洞具有不易发现、不易防护的特点,不像SQL注入、XSS漏洞可以上WAF等一些防护手段就可以控制;重点应该放在比如:个人信息区域、密码修改区域、密码忘记区域、支付区域、手机号区域等。这几个区域一般都是严重高危漏洞的始发点,任何一个地方出问题,都有可能造成企业、用户损失。而且每个公司的应用系统逻辑也都参差不齐,逻辑漏洞也肯定不尽相同。

 

一、越权

平行越权:权限类型不变,权限ID改变

垂直越权:权限ID不变,权限类型改变

预防思路:

1.cookie中设定多个验证,比如自如APP的cookie中,需要sign和ssid两个参数配对,才能返回数据。

2.用户的cookie数据加密应严格使用标准加密算法,并注意密钥管理。

3.用户的cookie的生成过程中最好带入用户的密码,一旦密码改变,cookie的值也会改变。

4.cookie中设定session参数,以防cookie可以长时间生效。

 

二:验证码回传

这个漏洞主要是发生在前端验证处,只要拦截数据包就可以获取敏感信息,并且经常发生的位置在于:账号密码找回、账号注册、支付订单等

预防思路:

response数据内不包含验证码,验证方式主要采取后端验证,但是缺点是服务器的运算压力也会随之增加;要进行前端验证的话使用加密进行。

 

三.未进行登陆凭证验证

有些业务的接口,因为缺少了对用户的登陆凭证的效验或者是验证存在缺陷,导致黑客可以未经授权访问这些敏感信息甚至是越权操作。

预防思路:

对敏感数据存在的接口和页面做cookie,ssid,token或者其它验证。

 

四:订单金额任意修改

关于支付的逻辑漏洞的一般思路。一种是少充多得,比如充值100元时通过篡改金额改成10元,最终充值完毕后账户变成了100元,而实际付款却只有10元;一种是绕过活动页金额限制,比如很多公司做活动强制用户充值金额不能低于10000,而通过拦截修改金额,可以充值任意金额。

预防思路:

增加多重检验,订单较大时增加人工审核。

 

五、密码重置

重置密码对一个系统来说是非常重要的存在,所以存在的问题也是非常致命。用户在重置密码页面,通过修改用户ID对所改用户密码进行重置;对密码重置页面验证码绕过,然后爆破进行等。

预防思路:

系统后台在重置密码页面验证是否为本用户等。