本文作者:云顶(贝塔安全实验室-核心成员)
简单说明一下:逻辑漏洞可以分为很多种web逻辑漏洞、业务逻辑漏洞、支付逻辑漏洞等等 其中有部分漏洞都是大体相似的,所以鄙人就不再做归类总结了
步入正题~~~~~~
0x01:常见的逻辑漏洞
1.欺骗密码找回功能(构造验证码爆破)
程序根据一个验证码来确定是否是用户本人,但攻击者可以暴力猜解验证码
2.规避交易限制(修改商品价格)
攻击者篡改数据包,使得购买得商品参数错误或无法验证造成得溢出
3.权限缺陷(水平越权、垂直越权)
攻击者更改数据包中用户得ID来访问指定用户得敏感信息或者冒充其他用户发布信息
4.cookie、token和session得验证问题(令牌验证时效性)
攻击者预先知道用户得ID,可以构造一个cookie、token或session值为ture可以绕过令牌认证
5.浏览设计缺陷(顺序操作)
攻击者在购物过程中强制绕过支付过程,直接从加入购物车步骤跳到填写收货地址步骤,有绕过的情况。
0x02:支付逻辑漏洞
1.修改金额
2.修改商品数量
3.修改优惠金额
4.修改数量、单价、优惠价格参数为负数或者小数,无限大 造成溢出
5.修改商品价格
6.支付key泄露
0x03:简单找了几个案例
一、密码爆破
这是最暴力最血腥的也是万般无奈之后的希望
密码爆破往往出现再登录框需要输入账号密码的地方
提示密码不正确,可以简单的判断账号是有了。
二、权限缺失
权限缺失可以导致任意用户查看、水平越权、垂直越权、未授权访问、任意修改用户密码等等
一般可以通过修改用户id、用户查询页面
垂直越权+任意用户修改权限
水平越权
(这里也算是令牌失效 只需要修改id号就能查看到其他用户)
三、支付漏洞
这一般出现再订单提交过程中、通过抓包修改数据包达到目的、可以修改的东西很多 比如:产品价格、订单信息、优惠卷金额、等等
修改其他信息就不再进行一一演示操作了。
支付类型的逻辑漏洞多在在于抽奖、集卡、购物平台等需要支付的地方
0x04:降低逻辑漏洞设计造成的建议
1. 安全代码审计中严格控制用户用户得请求和修改得参数
2. 清晰记录保存设计方案,以便审查
3. 审查代码时要做出假设,想象假设被为背后得每种情况
4. 程序与代码关联之间的依赖操作需要考虑造成的影响
5. 用户与管理员的权限要独立控制