实战经验丨业务逻辑漏洞探索之活动类漏洞

活动类的漏洞大家一定听说过,比如之前拼多多APP出现重大BUG,用户可以在任何没有限制的情况下无限领取100元无门槛优惠券。据不完全统计,一晚上的时间直接导致了拼多多200多亿的优惠券面额损失。

其实很多平台都会通过参与活动赢取奖励的方式来吸引用户,或是使用资金、虚拟货币、积分等进行交易,然而如果这些功能没有设计好,会很容易造成重大的经济损失,比如像上述的拼多多案例。

那么今天我们就来学习一下业务逻辑漏洞探索之活动类漏洞的相关内容,希望对大家有所帮助。

注:本文中提供的例子均来自网络已公开测试的例子,仅供参考。

我们测试的时候可以分为以下几种测试场景进行测试:

一、重放攻击

重放攻击是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的。在交易活动类功能里,除了进行简单的重放攻击进行获利外,对于大量的请求同时发起时,如果没有进行很好的处理,那就可能存在条件竞争漏洞。

1、无限获利

举个例子:

a) 某地方运营商举办让红包飞活动,中奖后可使用活动码兑换奖品。

b) 还未兑换前的流量。

c) 输入使用码可兑换50M流量。

d) 可成功兑换流量。

e) 抓取兑换流量的数据包进行重放可无限次兑换流量。

2、条件竞争

举个例子:

a) 某App 推出了新人领红包活动,新号可以免费领一次红包,使用抓包工具进行抓取领红包的数据包。

b) 然后同时并发多个数据包。

c) 由于没有做好大量并发请求的处理,可同时领到多个红包。

二、数据篡改

在交易活动类功能中,经常会涉及买卖、转账或者是兑换涉及资金、虚拟币、积分等,需要注意防范通过参数篡改进行非法获利。常见的两种篡改方式分别为金额篡改和数量篡改。在测试过程要注意交易、兑换过程中的商品单价、商品总价是否可以突破极限改为0、1、负数,尝试对金额进行篡改;在兑换过程中也要注意对数量参数的测试,尝试是否可免费或较低金额兑换大量积分、虚拟币等。

1、金额篡改

举个例子:

a) 某旅游网站的机票购买功能存在任意金额购买漏洞。

b) 搜索国际航班。

c) 选择一班机票进行购买,此时可看见金额至少为1778。

d) 提交购买订单。

e) 使用抓包工具进行抓包,可发现数据包中的totalPrice是机票价格。

f) 将机票价格修改为0.01,发现可以用0.01的价格购买任意机票。

2、数量篡改

  • 将数量改大

a) 某APP可进行签到抽奖获得阅币(50阅币相当于1块钱)

b) 首先得到自己手机签到和抽奖时候的链接,下次可以直接用浏览器访问链接签到、抽奖。抽奖时候的链接类似这样的(XXX是替代字符):

http://xxx.xxx/zybook/u/p/user.p ... 27XXXX74&p2=108

c) 抽奖过程是由js控制的,结果已经设定好了是6,就是会抽到6个阅币,是由count这个变量定义的。只要用浏览器打开,修改这个变量即可。

d) 这个变量应该是在上一步的时候生成的链接定义的,从链接中的变量传递过来,所以可以直接访问链接:

http://xxx.xxxx/zybook/u/p/user. ... 5&p1=1307271227

e) 注意,里面的price=5100表示这一次将抽到5100阅币,设置多少得多少,目前测试7位数可行。

将数量改为负数

举个例子:

a) 使用某购物网站进行购物,选取商品后进行抓包。

b) 修改数量为-1。

c) 网站里出现未支付订单,发现金额显示-299。

d) 直接点击付款,发现可以付款成功。

e) 可发现余额增多。

三、流程绕过

客户端测试活动业务是否存在漏洞,能否在未满足活动参与条件的情况下参与活动或获得收益常见的客户端验证方法。常见的活动限制绕过有两种,一种是次数限制绕过,一种是时间限制绕过。

1、次数限制绕过

举个例子:

a) 登入活动页面输入兑换码就可以兑换省内100M流量,当第二次输入同一个兑换码的时候会显示已兑换。

b) 查看历史找到了兑换的网页,可以跳过限制直接再次兑换。

地址:http://xxx.xxx/xxxx/web/info2.jsp?coupon=2&PrizeID=兑换码

c) 又发现兑换码只是个摆设,可以直接输入利用上面地址。输入11位数或英文大写字母就又可以兑换。

d) 后来继续查看那个地址发现info2.jsp是二等奖的页面,改成info1.jsp,就是一等奖的领奖页面。

2、时间限制绕过

a) 某站举办活动,有个摇奖机,摇一次之后需要在下一个小时才能摇奖。

b) 发现抽奖的验证放在前端,只是通过禁用抽奖按钮控制抽奖。将抽奖的方法搬到“查看中奖名单”的onclick下,每次点击“查看中奖名单”就可以触发摇奖机摇奖。

四、修复建议

以上就是对活动类漏洞的归类,如果你也有别的归纳也可以一起探讨探讨,以下就是对于交易活动类漏洞修复的一点建议:

1、交易类业务应充分考虑业务风险,应充分考虑流程和数据的防泄密、防篡改、防重放等安全问题。

2、交易类业务的关键参数,如单价、金额等关键参数必须在服务端生成或进行二次校验,不得直接使用用户可控数据。

3、活动类功能所有验证及限制都应在服务端,不应该相信客户端提交的信息。

以上是今天的全部内容,小伙伴们学会了吗?

原文地址:https://www.cnblogs.com/ichunqiu/p/10564641.html

时间: 2024-08-24 17:21:40

实战经验丨业务逻辑漏洞探索之活动类漏洞的相关文章

业务逻辑漏洞挖掘随笔【身份认证篇】

在厂家的时候出来跟客户聊安全,老是喜欢把漏洞分为"传统漏洞"."业务逻辑漏洞".现在听到这词还蛮新鲜的.最近要让学弟们去帮忙挖漏洞,结合自己的测试经验顺便给他们归纳了下业务逻辑挖掘,于是有了本文.... 纯科普,大牛请无视 暴力破解: 实习的时候帮客户检查系统,当实在没找到漏洞的时候最爱挑这个毛病,"该系统可被暴力破解".因为内网中这问题比比皆是,暴力破解确实是个敲门砖. 01:没有验证码 可选工具:burpsuite 当然了,也可以选择同时爆破

[典型漏洞分享]业务逻辑导致的隐私泄露1

业务逻辑漏洞是跟业务自身强相关的,必须结合业务本身进行分析. 视频广场存在业务逻辑等漏洞,可导致用户隐私泄漏[高] 问题描述:          经测试,视频广场存在如下漏洞: 1.  被进行好友分享的设备可以被好友进行广场分享,可导致用户隐私泄漏. 2.  发表评论和进行回复时未限制次数和频率,可利用进行恶意刷屏或灌水. 测试步骤:          问题1: 1.  将用户A的设备à设备A通过好友分享给用户B. 2.  登录用户B,可以得到设备A的序列号以及新的cameraID(通道号).

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

零.前言 最近做专心web安全有一段时间了,但是目测后面的活会有些复杂,涉及到更多的中间件.底层安全.漏洞研究与安全建设等越来越复杂的东东,所以在这里想写一个系列关于web安全基础以及一些讨巧的payload技巧以便于备忘.不是大神.博客内容非常基础,如果真的有人看而且是大牛们,请不要喷我,欢迎指正我的错误(水平有限). 一.越权: 1.本质: 某账户拥有了超出它应有权限范围外的操作许可权. 2.分类: (1)水平越权:横向拥有了同等安全等级.密级等衡量标准账户的权限. (2)垂直越权:纵向拥有

高可用网站多点部署架构实战经验总结

本文是学习大型分布式网站架构的技术总结.对架构一个高性能,高可用,可伸缩,可扩展的分布式网站进行了概要性描述,并给出一个架构参考.一部分为读书笔记,一部分是个人经验总结.对大型分布式网站架构有很好的参考价值. 一.大型网站的特点 用户多,分布广泛 大流量,高并发 海量数据,服务高可用 安全环境恶劣,易受网络攻击 功能多,变更快,频繁发布 从小到大,渐进发展 以用户为中心 免费服务,付费体验 二.大型网站架构目标 高性能:提供快速的访问体验. 高可用:网站服务一直可以正常访问. 可伸缩:通过硬件增

(转)MySQL数据库的优化-运维架构师必会高薪技能,笔者近六年来一线城市工作实战经验

标签:服务器 数据库 老男孩 高薪技能 一线城市 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://liangweilinux.blog.51cto.com/8340258/1728131 首先在此感谢下我的老师-老男孩专家拥有16年一线实战经验,我当然不能和我的老师平起平坐,得到老师三分之一的真传,所以只有6年,嘿,废话不多说,下面开启MySQL优化之旅! 我们究竟应该如何对MySQL数据库进行优化?下面我就从MySQL对硬件

深度学习在搜索业务中的探索与实践

本文根据美团高级技术专家翟艺涛在2018 QCon全球软件开发大会上的演讲内容整理而成,内容有修改. 引言 2018年12月31日,美团酒店单日入住间夜突破200万,再次创下行业的新纪录,而酒店搜索在其中起到了非常重要的作用.本文会首先介绍一下酒店搜索的业务特点,作为O2O搜索的一种,酒店搜索和传统的搜索排序相比存在很大的不同.第二部分介绍深度学习在酒店搜索NLP中的应用.第三部分会介绍深度排序模型在酒店搜索的演进路线,因为酒店业务的特点和历史原因,美团酒店搜索的模型演进路线可能跟大部分公司都不

mysql触发器的实战经验-不错的文章

1   引言Mysql的触发器和存储过程一样,都是嵌入到mysql的一段程序.触发器是mysql5新增的功能,目前线上凤巢系统.北斗系统以及哥伦布系统使用的数据库均是mysql5.0.45版本,很多程序比如fc-star管理端,sfrd(das),dorado都会用到触发器程序,实现对于数据库增.删.改引起事件的关联操作.本文介绍了触发器的类型和基本使用方法,讲述了触发器使用中容易产生的误区,从mysql源码中得到触发器执行顺序的结论,本文最后是实战遭遇的触发器经典案例.没有特殊说明时,本文的实

代码重构的实战经验和那些坑

为什么我们觉得有必要从头重写软件呢? 在第一次编写系统代码时,我们的时间表十分紧迫,必须与时间赛跑,在计划时间内赶完进度.因此无论是设计讨论,还是审查会议都没花太长时间——我们没有时间浪费在这上面——只能匆匆完成一个功能.快速测试,然后赶着去做下一个.我们与别的公司共享办公空间,我还记得其他公司的软件开发都会花很长时间做设计.讨论架构,再花上数周讨论设计模型. 除了设计仓促,原本的系统写得不差,总体来说架构也不错.其中有些意大利面条式的代码,是公司之前做概念验证时留下的,因为这些代码能用,再加上

系统架构师-基础到企业应用架构-业务逻辑层

一.上章回顾 上章我们主要讲述了系统设计规范与原则中的具体原则与规范及如何实现满足规范的设计,我们也讲述了通过分离功能点的方式来实现,而在软件开发过程中的具 体实现方式简单的分为面向过程与面向对象的开发方式,而目前更多的是面向对象的开发设计方式.并且我们也讲述了该如何通过设计手段去分析功能点及设计分离 点,应该如何在设计的过程中分析的角度及如何去满足设计规范与原则.首先我们通过下图来回顾下上章要点: 二.摘要 本文将已架构的方式去分析分层结构中的业务层的设计,如何写出来内聚度,高耦合的业务逻辑层