看懂逻辑漏洞

Posted 白昼安全

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了看懂逻辑漏洞相关的知识,希望对你有一定的参考价值。

作者名:Demo不是emo 

主页面链接:主页传送门
创作初心:对于计算机的学习者来说,初期的学习无疑是最迷茫和难以坚持的,中后期主要是经验和能力的提高,我也刚接触计算机1年,也在不断的探索,在CSDN写博客主要是为了分享自己的学习历程,学习方法,总结的经验等等,希望能帮助到大家
座右铭:不要让时代的悲哀成为你的悲哀
专研方向:网络安全,数据结构

每日emo:生活有很多味道 最甜和最苦都是你

要开学了,事情很多,所以耽搁了两天,请大家见谅

今天要分享的是一个特别常见却不容易找的漏洞——逻辑漏洞,话不多说进入正题

目录

1.漏洞介绍

1.成因

2. 分析

2.逻辑漏洞详解

1.常见的逻辑漏洞

2.如何挖掘逻辑漏洞

3.逻辑漏洞常见思路 

 1.交易支付

2.密码修改

四:思路拓展 


1.漏洞介绍

1.成因

 逻辑漏洞是指由于程序逻辑不严或逻辑太复杂,导致一些逻辑分支不能够正常处理或处理错误,一般出现任意密码修改(没有旧密码验证)、越权访问、密码找回、交易支付金额等。

2. 分析

 对常见的漏洞进行过统计,发现其中越权操作和逻辑漏洞占比最高,很多平台中基本都有发现,包括任意查询用户信息、任意删除等行为;最严重的漏洞出现在账号安全,包括重置任意用户密码、验证码暴力破解等。

2.逻辑漏洞详解

1.常见的逻辑漏洞

交易支付、密码修改、密码找回、越权修改、越权查询、突破限制等各类逻辑漏洞。

2.如何挖掘逻辑漏洞

确定业务流程--->寻找流程中可以被操控的环节--->分析可被操控环节中可能产生的逻辑问题--->尝试修改参数触发逻辑问题        

3.逻辑漏洞常见思路 

 1.交易支付

1、加入购物车时是否可以修改购买数量为负数,商品价格是否可以修改.

2、确认购物车信息时是否可以修改商品数量为负数,是否存在折扣限制突破问题,是否可以修改商品总金额.

3、输入物流信息时是否可以控制运费,如果可以,尝试修改为负数.

4、确认订单后跳转支付接口时是否可以修改支付金额,可否不支付直接跳转到交易成功环节.

 

2.密码修改

 

四:思路拓展 

逻辑漏洞与其他漏洞相比,最大的特点就是不易发现和不易防护,人们总是按照惯性思维和网站引导进行操作,而网站的开发人员也惯性思维的认为用户都会按照他们的想法来操作,这就造成了一些很诡异的漏洞和bug

例如上面支付漏洞中购买数量为负数,这就是管理员并没有想到有人会输入负数,从而被利用,引起连锁反应,所以小伙伴们寻找逻辑漏洞时,发散自己的思维才是最重要的,感谢大家的阅读

逻辑漏洞

逻辑漏洞

逻辑漏洞是一种业务逻辑上的设计缺陷,业务流存在问题。
这里说一下密码找回漏洞、多线程条件竞争漏洞和支付漏洞。

技术分享图片

密码找回漏洞

1、 测试流程

先尝试正确的密码找回流程,记录不同找回方式的所有数据包
分析数据包,找到有效数据部分
推测数据构造方法
构造数据包验证猜测

2、 分类

* 邮箱找回
    一般是点击邮件中的链接后会转跳到修密码的页面,这就需要分析链接的token构造了,
    可以考虑是时间戳md5、用户名或邮箱和随机字符串md5等,一般是类似如下链接:
    http://domain/findpwd.php?u=xiaoming&token=MTIzQHFxLmNvbQ==
    http://domain/findpwd.php?id=374&token=2ad64bf14c714dbce88c7993663da7da
    当构造相应链接时就可以重置任意用户的密码
* 手机短信找回
    短信找回一般就是4位或6位验证码,暴力猜测吧
* 找回逻辑错误
    若恶意用户A用15123333333找回密码,此时收到验证码但不使用
    此时恶意用户A再用受害者B的手机号找回密码
    用户A在B的验证表单填入自己收到的验证码,发送
    此时跳转的修改密码页面修改的就是用户B的密码
* 直接修改密码
    在修改密码时跳过选择找回方式,直接访问修改密码的页面进行修改
* 本地验证
    随意输入一个验证码,开Burp抓包,forward,抓返回包,返回包里可能有一个flag字段,
    若flag的值为1则跳转到修改密码页面,所以只要修改返回包即可
* 服务端将验证码返回给浏览器
    在点击获取验证码时,服务器会将验证码发送给浏览器,抓包即可
* 验证码直接出现在url中
    当点击获取验证码时发出的请求链接中直接有code
* 密保问题找回
    回答密保问题,有时一些答案就在html源码里

支付漏洞

攻击者通过修改交易金额、交易数量等从而利用漏洞,
如Burp修改交易金额、使交易数量为负数或无限大等。

* 在支付时直接修改数据包中的支付金额,实现小金额购买大金额商品
* 修改购买数量,使之为负数,可购买负数量商品,从而扣除负积分,即增加积分,
  或使购买数量无限大,无限大时则程序可能处理出错,从而实现0金额支付
* 请求重放,在购买成功后重放请求,可实现"一次购买对此收货"

漏洞修复

  • 对于密码重置漏洞,可以使用复杂的token,使之不可被预测
  • 对于密码重置漏洞,校验refer,不使用本地校验等
  • 对于支付漏洞,主要就是签名了,或者https

值得一看的案例:

https://blog.csdn.net/hydrakingbo/article/details/52388183

https://www.cnblogs.com/xishaonian/p/6416659.html

http://www.freebuf.com/vuls/151196.html

 

介绍:仅供技术交流学习探讨请勿用于非法用途,。本文部分资源来源于网络,如有侵权请联系版主删除。


以上是关于看懂逻辑漏洞的主要内容,如果未能解决你的问题,请参考以下文章

Web安全测试中常见逻辑漏洞解析(实战篇)

不可思议但又无处不在的漏洞,WEB安全基础入门—业务逻辑漏洞

web安全业务逻辑找回机制安全&接口安全

WEB安全--逻辑漏洞

WEB安全第七篇--终结篇考验逻辑思维:逻辑漏洞大汇总(越权会话逻辑业务逻辑暴力破解)

web业务安全逻辑