在线支付逻辑漏洞总结

随着网民越来越习惯于网上购物,出现了越来越多的电商网站,在线交易平台等。

其中肯定要涉及在线支付的流程,而这里面也有很多逻辑。

由于这里涉及到金钱,如果设计不当,很有可能造成0元购买商品等很严重的漏洞。

0x01 检测方法与案例



根据乌云上的案例,支付漏洞一般可以分为五类,如果发现其他的类型,欢迎补充:

1、支付过程中可直接修改数据包中的支付金额

这种漏洞应该是支付漏洞中最常见的。

开发人员往往会为了方便,直接在支付的关键步骤数据包中直接传递需要支付的金额。

而这种金额后端没有做校验,传递过程中也没有做签名,导致可以随意篡改金额提交。

只需要抓包看到有金额的参数修改成任意即可。

我们来看一看乌云上的几个案例:

WooYun: 必胜客宅急送支付表单伪造金额

WooYun: 肯德基宅急送支付表单伪造金额

WooYun: 新浪微号存在支付绕过漏洞

WooYun: 淘宝网某处存在严重支付漏洞

WooYun: 佳域手机官方商城支付漏洞 (这个亮点是真的到货了……)

WooYun: 91分站存在支付绕过

WooYun: 江西移动1元钱买手机漏洞

WooYun: 爱拍主站存在严重漏洞

WooYun: 再爆苏宁某站点重大漏洞

WooYun: 苏宁某站点存在严重漏洞

WooYun: TP-Link官方商城支付漏洞

WooYun: 鲜果网支付漏洞

WooYun: 京东商城购买商品时,可以修改商品金额,并且支付成功

WooYun: 京东团购订单金额可在客户端修改并提交网银支付

WooYun: 网通营业厅客户信息泄露、充值支付价格修改漏洞

2、没有对购买数量进行负数限制

这种案例也比较常见,产生的原因是开发人员没有对购买的数量参数进行严格的限制。

这种同样是数量的参数没有做签名,导致可随意修改,经典的修改方式就是改成负数。

当购买的数量是一个负数时,总额的算法仍然是"购买数量x单价=总价"。

所以这样就会导致有一个负数的需支付金额。

若支付成功,则可能导致购买到了一个负数数量的产品,也有可能返还相应的积分/金币到你的账户上。

WooYun: 百脑汇商城支付漏洞

WooYun: m1905电影网存在严重支付漏洞

WooYun: 国美网上商城支付漏洞1元订购Iphone 4S!

WooYun: 又拍网旗下某站存在严重支付漏洞

WooYun: 新蛋中国支付漏洞

WooYun: 拉卡拉商店0元购支付问题

WooYun: 中粮52buy商城的支付漏洞

WooYun: 115网盘存在支付绕过

最后一个漏洞与其他不同的是把数量改成一个超大的数,而不是负数。

结果导致支付的金额可能超过一定数值而归0。

3、请求重放

购买成功后,重放其中请求,竟然可以使购买商品一直增加~

阿里云主机多次下订单,会出现0元订单情况,不知道程序员后端是如何写的……

WooYun: 豆丁网购买豆元后可以将豆元倍增

WooYun: 阿里云0元订单,服务器随便买

4、其他参数干扰

此案例金钱已经做了签名认证,修改后不通过。

但是仍然有一个参数会对最后的金额产生影响而没有一起做签名导致问题产生。

WooYun: 新东方逻辑支付漏洞

0x02 修复方案



其实修复方案很简单,对传递的金钱,数量等对最后支付金额会产生影响的所有参数做签名。

并且注意签名算法不可被猜测到。

这样攻击者修改数据的时候验证便不会通过。

同时注意对已经交易的订单不可重复而造成重复重置的漏洞。

参考:http://zone.wooyun.org/content/878

时间: 2024-08-29 14:58:38

在线支付逻辑漏洞总结的相关文章

逻辑漏洞-支付风险-大疆某处支付逻辑漏洞可1元买无人机

缺陷编号: WooYun-2016-194751 漏洞标题: 大疆某处支付逻辑漏洞可1元买无人机 漏洞作者: 锄禾哥 首先注册一个大疆的账号,打开大疆的商城,挑选一件商品进入点击购买 http://store.dji.com/cn/product/phantom-4 然后跳转进入了购买页面 https://store.dji.com/cn/buy/checkout?t=bn&i=4231&q=1&bind_care_id=0 打开fiddler进行拦截,咿呀,居然不行,证书有强制握

在线支付流程安全分析与支付漏洞总结

前言 大家对支付漏洞的理解通常都是篡改价格,已有的对支付漏洞的总结也是对现有的一些案例的经验式归类,没有上升到对在线支付流程深入分析的一个层面.这里尝试从分析在线支付流程,在线支付厂商的接入方式开始,深入业务分析整个在线交易流程中容易出现的安全问题. 支付宝/在线支付流程 支付宝即时到账接口开发流程 在线支付从功能上来说是通过支付宝的支付渠道,付款者直接汇款给另一个拥有支付宝账号的收款者.整个流程说明如下:引用自支付宝文档. (1)构造请求数据商户根据支付宝提供的接口规则,通过程序生成得到签名结

WEB安全--逻辑漏洞

业务逻辑问题是一种设计缺陷.逻辑缺陷表现为设计者或开发者在思考过程中做出的特殊假设存在明显或隐含的错误.精明的攻击者会特别注意目标应用程序采用的逻辑方式,设法了解设计者与开发者做出的可能假设,然后考虑如何攻破这些假设.黑客挖掘逻辑漏洞有两个重点,就是业务流程和HTTP/HTTPS请求篡改. 逻辑错误分类:1.欺骗密码找回功能 程序根据一个验证码来确定是用户本人,但是攻击者可以暴力破解验证码.2.规避交易限制 攻击者篡改数据报,使得购买的商品为负数,或者商品价格为负数.3.越权缺陷 攻击者更改数据

在线支付功能的设计及其实现

----------------------------------------------------------------------------------------------[版权申明:本文系作者原创,转载请注明出处] 文章出处:http://blog.csdn.net/sdksdk0/article/details/52154672作者:朱培      ID:sdksdk0      邮箱: [email protected]   ------------------------

【SSH网上商城项目实战23】完成在线支付功能

上一节我们做好了支付页面的显示,从上一节支付页面显示的jsp代码中可以看出,当用户点击确认支付时,会跳到${shop}/pay_goBank.action的action,也就是说,提交后我们得在payAction中的goBank方法中处理一些逻辑(即21节demo中的那个流程图的逻辑),即获得明文,将明文加密成签名(密文)然后再去访问易宝服务器,易宝连接银行,完成支付.  但是考虑到MVC设计模式,我们会将上面这些业务逻辑放到Service层中处理,所以下面我们来实现21节中那个demo的支付逻

浅谈APP漏洞挖掘之逻辑漏洞

作者:Can 联系方式:[email protected] 文章中若无特别说明,实例皆为本人自主挖掘. 转载请注明出处,本文仅为个人经验总结,介绍的并非所有方法,只是一些最常见的方法.如有错误,烦请指出. 0x00 简介 本文主要介绍APP漏洞挖掘中逻辑漏洞,包括任意用户密码重置,支付漏洞,任意用户未授权登录. 0x01 任意用户密码重置正文 首先,我们来看看任意用户密码重置. 方法一:密码找回的凭证太弱,为4位或6位纯数字,并且时效过长,导致可爆破从而重置用户密码. 这里我们来看一个实例,目前

网站集成支付宝在线支付

摘要 项目中需要集成支付宝在线支付.关于这里简单说明一下,操作步骤. 步骤 1.进入开放平台,地址;https://openhome.alipay.com/developmentDocument.htm,选择支付类型.这里选择电脑网站支付. 2.下载对应语言demo 3.查看demo,填写必要参数. /// <summary> /// config 的摘要说明 /// </summary> public class config { public config() { // //

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

Web安全测试中常见逻辑漏洞解析(实战篇) 简要: 越权漏洞是比较常见的漏洞类型,越权漏洞可以理解为,一个正常的用户A通常只能够对自己的一些信息进行增删改查,但是由于程序员的一时疏忽,对信息进行增删改查的时候没有进行一个判断,判断所需要操作的信息是否属于对应的用户,导致用户A可以操作其他人的信息.? 逻辑漏洞挖掘一直是安全测试中"经久不衰"的话题.相比SQL注入.XSS漏洞等传统安全漏洞,现在的攻击者更倾向于利用业务逻辑层的应用安全问题,这类问题往往危害巨大,可能造成了企业的资产损失和

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

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