九维团队-绿队(改进)| 常见逻辑漏洞汇总及修复整改思路小结

admin 2022年7月20日18:51:26评论82 views字数 2817阅读9分23秒阅读模式

九维团队-绿队(改进)| 常见逻辑漏洞汇总及修复整改思路小结


01

逻辑漏洞概述



在本文中,笔者对常见的逻辑漏洞及其修复方法和整改建议进行了整合,供各位参考。


由于程序逻辑不严谨或逻辑太过复杂,导致一些逻辑分支不能正常处理或处理错误,被统称为业务逻辑漏洞。


常见的逻辑漏洞有交易支付、密码修改、密码找回、越权修改、越权查询、未授权访问、关键步骤绕过等,下面是笔者对常见的逻辑漏洞进行了一些总结。


九维团队-绿队(改进)| 常见逻辑漏洞汇总及修复整改思路小结




02

业务场景分类



01

金融类



a.交易平台

  • 钱包并发提现,负数提现;

  • 使用钱包支付时多个订单并发支付(是否支付金额能大于余额);

  • 转账负数,并发转账;

  • 上架商品突破限制,例如数量、字数;

  • 替换订单,创建订单号如果订单状态可修改,先进到支付界面,随后将订单修改成更大的金额,然后支付提前进入的支付界面;

  • 数量修改。

b.网银

  • 各个业务服务功能越权;

  • 功能接口敏感信息泄露;

  • 开户/贷款/取款关键步骤绕过;

  • 转账、提现并发。



02

电商类



  • 商品限量、优惠券限量、抽奖功能、提现、会员充值可并发;

  • 订单完成中会有商品评价,会检测是否购买过商品,通过篡改待支付订单的状态码进行绕过,对未支付订单商品进行评价;

  • 支付订单、生成订单时修改敏感参数、或替换订单ID、商品ID、数量、金额等导致订单金额篡改;

  • 总金额=商品金额+优惠券金额(只校验订单总金额,而不单独校验优惠券金额跟商品金额,可增大优惠券金额);

  • 校验商品总数量不能为负数,而不校验单个数量,可以设置两个商品一个数量为-1,一个数量为2;

  • 使用优惠券、退货处、订单查询、收货地址、个人信息、商品评价等可越权使用、篡改、删除;

  • 订单参数混淆干扰,在同一个订单内提交两个或多个金额参数,如price=1&price=-1;

  • 强制攻击。强制攻击发生在暴力破解的情况下,如果一个商家运用一个自己的网店,接入第三方支付接口,由于设计上的不当导致商家与第三方支付约定的密钥Key可以单独被MD5加密,导致可以使用MD5碰撞技术对密钥进行破解,攻击者可以设计简单的密钥加密信息使得MD5加密可以用MD5碰撞技术进行暴力破解;

  • 订单金额单位可替换;

  • 收款账号、二维码篡改;

  • 支付流程缺陷,可跳过,假设abcd四个步骤,c为校验步骤,直接跳过c进入到d步骤);

  • int型溢出(超过最大值整数溢出)遍历优惠券id,有可能遍历出测试隐藏的无条件大额优惠券;

  • 订单未捆绑,确定支付之后还可以将商品加入购物车:把商品放入购物车点击下单支付,会跳转到微信,支付宝等第三方支付平台。这个时候还可以继续在购物车中加入商品,支付结束之后,商家发放的商品是现在的购物车里面的东西;

  • JS文件存在隐藏接口服务、参数;

  • 优惠券使用限制绕过。


03

服务类



a.外卖

  • 商品数量,0,负数,小数,特定值,正负数(A为-1,B为2,总值为1);

  • 送餐员评价、星级、打赏金额修改(小数,负数);

  • 商品评价字数、星级限制突破,上传图片是否可以自定义格式;

  • 送餐地址限制突破;

  • 强行货到付款,取消订单,退款;

  • 越权操作别人订单,登陆;

  • 优惠购买会员(重复使用优惠购买);

  • 外卖红包并发领取;

  • 红包、优惠券可枚举。

b.网约车

  • 无限叫车,重复发送协议造成市场混乱;

  • 修改评价分数;

  • 修改限时优惠叫车关键参数;

  • 替换优惠卷;

  • 越权操作其他订单。


04

社交类



主要面向社区论坛

  • 个人用户信息回显。论坛、社区部分以用户手机号等方式进行注册,注册后默认以该手机号为账号,有的会明文显示,有的会在页面上做屏蔽处理,但服务器返回是明文;

  • 修改密码、个人信息越权操作;

  • 用户批量注册;

  • 注册信息覆盖;

  • 客户端校验绕过;

  • 评论区可外链钓鱼链接(包括XSS);

  • 任意文件上传;

  • 加密帖检验绕过;

  • 强行加好友(一般尝试重发通过好友这条协议);

  • 自由修改号码(靓号类);

  • 非会员使用会员功能。


05

娱乐类



主要面对直播、漫画、音乐等软件

a.音乐

  • 唱歌类软件修改上传分数等参数;

  • 评论区批量恶意评论、越权评论;

  • 付费下载尝试替换下载ID;

  • 修改付费下载金额;

  • F12查看下是否有歌曲地址。

b.漫画

  • 打赏金额为负数,小数,特定值(溢出);

  • 越权删除评论,登陆;

  • 修改充值金额;

  • 付费漫画免费看;

  • 评论图片数量过多会导致客户端加载卡死。

c.直播

  • 快速进出房间炸房;

  • 无限发送点赞协议;

  • 修改礼物数量,0,小数,负数,特定值(一般情况下为1073741824);

  • 修改礼物ID,遍历尝试是否有隐藏ID;

  • 并发送礼物,抽奖;

  • 无限创建首次优惠订单,有些首次优惠订单是一个特殊的pid,这种的直接替换pid进行支付。有些是相同的ID,这种的提前创建订单,记录多个订单号在依次修改订单支付;

  • 刷屏:发言刷屏,分享,点赞等有提示的地方刷屏;

  • 房间内可以申请的地方进行申请取消操作,看看是否能炸房;

  • 越权踢人,增加管理员,关闭房间等操作;

  • 发送的表情是否可以修改长宽。




03

常见逻辑漏洞修复方法和整改建议



关于逻辑漏洞当然还有很多其他的点没有总结到,在日常的业务逻辑挖掘中,一定要搞清它的代码逻辑,这样才能知道它有没有问题。逻辑问题也不能一概而论,同一个逻辑问题在某些功能点或场景可能有危害,换个场景它可能就没什么危害了,具体情况需要结合具体场合。


越权访问:

1、对于水平越权,需要严格校验用户身份,限制同权限账户的数据互相访问。

2、对于垂直越权,一方面需要对用户访问角色的权限进行严格的检查及限制,另一方面还要严格限制同权限账户的数据互相访问。


未授权访问:

1、页面进行严格的访问权限的控制以及对访问角色进行权限检查。

2、可以使用session对用户的身份进行判断和控制。


金额篡改:

1、在请求数据中对涉及金额、数量等敏感信息进行加密,保证加密算法不可猜解。

2、在服务器端对发送的数据进行严格校验。


短信轰炸:

在服务器限制发送短信或邮件的频率,如同一账号1分钟只能发送1次短信或邮件,一天只能发送3次。


暴力破解:

1、如果用户登录次数超过设置的阈值,则锁定帐号(有恶意登录锁定帐号的风险)。

2、增加人机验证机制、验证码等。

3、验证码必须在服务器端进行校验,客户端的一切校验都是不安全的。


关键步骤绕过:

尽量不要使用分步校验,在将数据提交给服务端时,将前面步骤校验过的数据再次进行校验。


不安全的URL跳转:

1、在进行页面跳转前校验传入的URL是否为可信域名。

2、白名单规定跳转链接。


Session固定攻击

每次登录后将原来的session作废,生成新的session。


请求重放攻击:

服务端应用程序应检查客户端提交的数据的唯一性,如使用流水号、时间戳、token等,并将流水号、时间戳等进行签名。


条件竞争/并发:

1、给保护对象加资源锁。

2、增加一次性校验参数,防止请求重放。



—  往期回顾  —

九维团队-绿队(改进)| 常见逻辑漏洞汇总及修复整改思路小结
九维团队-绿队(改进)| 常见逻辑漏洞汇总及修复整改思路小结
九维团队-绿队(改进)| 常见逻辑漏洞汇总及修复整改思路小结
九维团队-绿队(改进)| 常见逻辑漏洞汇总及修复整改思路小结
九维团队-绿队(改进)| 常见逻辑漏洞汇总及修复整改思路小结



关于安恒信息安全服务团队
安恒信息安全服务团队由九维安全能力专家构成,其职责分别为:红队持续突破、橙队擅于赋能、黄队致力建设、绿队跟踪改进、青队快速处置、蓝队实时防御,紫队不断优化、暗队专注情报和研究、白队运营管理,以体系化的安全人才及技术为客户赋能。

九维团队-绿队(改进)| 常见逻辑漏洞汇总及修复整改思路小结
九维团队-绿队(改进)| 常见逻辑漏洞汇总及修复整改思路小结

九维团队-绿队(改进)| 常见逻辑漏洞汇总及修复整改思路小结

原文始发于微信公众号(安恒信息安全服务):九维团队-绿队(改进)| 常见逻辑漏洞汇总及修复整改思路小结

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年7月20日18:51:26
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   九维团队-绿队(改进)| 常见逻辑漏洞汇总及修复整改思路小结https://cn-sec.com/archives/1184333.html

发表评论

匿名网友 填写信息