逻辑漏洞大汇总

逻辑漏洞是指由于程序逻辑不严或逻辑太复杂,导致一些逻辑分支不能够正常处理或处理错误,一般出现在任意密码修改(没有旧密码验证)、越权访问、密码找回、交易支付金额等。一般挖掘逻辑漏洞有两个重点:业务流程和HTTP/HTTPS请求篡改。比较常见的有:越权丶会话逻辑丶业务逻辑丶暴力破解丶密码找回漏洞等

 

一、越权:

1.本质:某账户拥有了超出它应有权限范围外的操作许可权。

2.分类

2.1水平越权:就是相同级别(权限)的用户或者同一角色不同的用户之间,可以越权访问、修改或者删除的非法操作。如果出现次漏洞,那么将可能会造成大批量数据泄露,严重的甚至会造成用户信息被恶意篡改。

2.2垂直越权:垂直越权是不同级别之间或不同角色之间的越权;垂直越权又别分为向上越权与向下越权。比如,某些网站,像发布文章、删除文章等操作属于管理员该做的事情。假设一个匿名用户也可以做相同的事情,这就叫做向上越权;向下越权是一个高级用户可以访问低级用户信息,会泄露用户隐私。

解决向上越权是比较容易处理的事情,如果管理员表与普通用户是同一张数据库表,就必须要存在权限验证字段,权限验证字段用来区分是否为管理员。如果不在同一张表,在过滤器中直接取出管理员信息即可。

3.防御办法: 涉及用户信息的操作需要验证用户身份,比如查看各种用户信息的情况下,不能只根据用户uid去搜索,应该再次进行身份验证。可以在session或者cookie中加入不可预测、不可猜解的user信息,或者特别敏感的操作应该再次让用户输入password或者其他用户验证信息。

4.检测手段:

(1)STEP1:查看所有敏感涉及到账户的操作是否有除了UID之外的验证方式,没有的话构造uid访问,可检查是否有漏洞,这里的uid代指username、email、userid 等声称的账户信息。

(2)STEP2:如果有验证参数,尝试是否是可以预知的或者可以猜测出来的。不是,没有漏洞,是,有漏洞,构造请求验证漏洞。

5.一般越权发生的位置:

(1)修改、重置、找回其他账户密码。

(2)查看、修改其他账户未公开的信息,例如个人资料、文件、数据、程序等。

(3)其他应与账户关联的权限操作。

二、会话逻辑:

1、session的问题:

(1)sessionid简称sid,应在登录成功之后进行重置,一般保存在cookie中,set-cookie重置即可。否则会导致Session Fixation攻击。

(2)sessionid应当在合理时间内过期,否则将导致session保持攻击,也就是别人利用cookie登录以你的身份登录

三、业务逻辑:

1、支付类逻辑漏洞

(1)修改商品为负数(可能会增加攻击者账户对应的真实或虚拟财富值)

(2)修改单价、总价、运费价(修改为负数,改小等)攻击者获取利益。

(3)修改价格字段值为字符串,尝试攻击服务器异常抛出逻辑错误,例如,总价异常抛出是修改为0。

2、信息轰炸类漏洞

(1)短信轰炸、邮件轰炸、私信轰炸。

(2)可能发生的地方:

(2.1) 注册验证码获取(邮件短信)

(2.2) 注册激活邮件获取(邮件)

(2.3) 密码找回验证(邮件短信)

(2.4) 支付类信息、验证码验证(短信)

(2.5) 站内信、私信发送处(私信、站内信)

(3)测试方法:抓到发送短信、邮件、私信、站内信的报文,不断重放。

3、针对用户拒绝服务攻击

(1)指定目标用户,拒绝其服务进行攻击。

(2)逻辑漏洞,验证信息多次错误尝试可能导致用户被封锁。

(3)漏洞地点:验证发生的任何地方(注册、支付、密码找回、密码修改、登录、敏感操作等)

(4)测试办法:重放错误验证信息的报文。

四、暴力破解:

1、验证码。

2、频率试错控制。

来源于挖洞的土拨鼠博客,添加部分内容。原文链接https://www.cnblogs.com/KevinGeorge/p/8252656.html