简单的逻辑漏洞总结


简介

? 逻辑漏洞利用的就是程序员在编写项目时对程序的逻辑输入管控不严导致的,此类错误是目前WAF无法防住的,因此相比于传统的SQL注入、XSS等传统漏洞就比较易于利用,逻辑漏洞常见的危害有:订单金额随意修改、验证码回传、验证码存在设计缺陷等等


一、订单金额随意修改

? 很多中小型购物网站都能通过抓包改包以达到逻辑漏洞的实现

预防思路:

? 1·商品所在的服务器在给用户发送支付请求前根据商品的ID、订单金额等等生成复杂的哈希值,在用户支付后商品所在服务器再根据商品ID、订单金额等等生成哈希值,再对比第一次生成的哈希值,如果哈希值一样则订单生效、如果哈希值不一样则订单失效

? 2.服务器判断当前订单的金额是否较大,订单金额较小就执行第1步,当商品金额较大时转交人工审核流水账,收到金额则订单生效、没有收到金额则订单失效


二、任意账号密码重置

? 一般这种危害会发生在密码找回处,找回密码的流程是:填写要找回密码的用户名/手机号/邮箱--->接收验证码--->验证通过--->填写新密码;要利用找回密码就必须有一个账号我们可以注册一个账号或者通过其他渠道弄到账号,再进行找回密码,在找回密码时用自己的手机号接收验证码进行验证,当进行设置新密码时抓包,将数据包中自己的手机号改成要更改密码的手机号,在一些设计逻辑不严的网站可以实现,我们可以使用这个方法更改该公司CEO以及网站管理员的密码

预防思路:

? 1.开发方在进行重置密码时给账户的ID加上一个key


三、验证码回传

? 这种情况多见于网站的密码找回、账号注册、支付订单等功能,且受害网站多使用前端验证,只要攻击者在攻击上面功能点时抓一个响应数据包即可知道验证码(前提是开发方使用的是前端验证)

预防思路:

? 1.将前端验证改成后端验证,但服务器的运算压力也会随之增加

? 2.不进行后端验证也可以,但要将前端验证的数据进行加密


四、验证码设计存在缺陷

? 一些中小型网站,发送给用户的验证码只是简简单的四位数字,这种情况攻击者可以通过爆破实现绕过验证码进行登录、改密码、进行支付


上图只是用来演示这种验证码比较容易爆破,不是说华硕官网可以进行爆破哈

预防思路:

? 1.将验证码改成六位,并且增加有效期

? 2.进行爆破的预防,以防逻辑漏洞的实现