当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2015-0103945

漏洞标题:优个网存在支付逻辑漏洞(1分钱支付)

相关厂商:yoger.com.cn

漏洞作者: px1624

提交时间:2015-03-26 17:01

修复时间:2015-05-10 17:12

公开时间:2015-05-10 17:12

漏洞类型:设计缺陷/逻辑错误

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-03-26: 细节已通知厂商并且等待厂商处理中
2015-03-26: 厂商已经确认,细节仅向厂商公开
2015-04-05: 细节向核心白帽子及相关领域专家公开
2015-04-15: 细节向普通白帽子公开
2015-04-25: 细节向实习白帽子公开
2015-05-10: 细节向公众公开

简要描述:

诶,前天在优个网买了套乒乓球装备,花了700多块大洋!第一次用优个网,感觉这网站用来买体育器材还不错,客服态度蛮好的。然后搜了搜这网站,竟然还是国内最大的体育器材电商。但是整个购买过程中,一直感觉这网站的安全做的很水,所以今天就专门去再看看有没有啥安全问题。

详细说明:

1 这里随便选了个商品作为演示,未真正支付利用。

1.png


2 正常下单程序去下单,然后支付,直到这一步。

2.png


3 然后发现付款,其实就是访问链接
http://www.yoger.com.cn/API_pay/alipay_direct/alipayto.asp?orderID=po******_****&paySum=1090
4 发现前面的orderID就是订单号,后面的paySum就是支付的金额总和。
那么果断修改下再访问,把1090改成0.01。
http://www.yoger.com.cn/API_pay/alipay_direct/alipayto.asp?orderID=po******_****&paySum=0.01
5 呵呵,这样就可以一分钱购买了。

3.png


漏洞证明:

1 可以看到上图中,已经是跳转到了支付宝的支付页面了,已经是支付宝的域名了,所以优个的服务器已经无法控制了,这里我就不去支付了。
2 然后还有个问题需要说明,这里由于是在支付的时候进行的串改,所以在订单中显示的支付金额应该还是原价,所以一般也很难被发现吧。包括你们后台的录订单的信息应该也是正常的,只是支付宝的真正收款被串改了。
3 所以,有可能这个漏洞已经被不法分子给利用了,建议你们还是自己排查排查下吧。目测如果被利用,然后要找出来,难度也挺大的!所以还是赶紧修补吧!!!

修复方案:

1 支付过程中加一个服务器生成的key,用户校验参数有没有被串改。
2 优个网真心挺不错,好多东西都好想买,求送点礼品卡。

版权声明:转载请注明来源 px1624@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:7

确认时间:2015-03-26 17:11

厂商回复:

感谢您关注优个网,进行串改确实可以做到只支付1分钱,出站的数据我们没有进行检验,由支付宝完成,但接收回来的数据是会校验的,如果只支付一分钱,订单是无法完成支付的,而这1分钱会存入他的优个网帐户。

最新状态:

暂无


漏洞评价:

评论

  1. 2015-03-26 17:07 | wanglaojiu ( 普通白帽子 | Rank:168 漏洞数:39 | 道生一,一生二,二生三,三生万物,万物负...)

    px大牛,给你一分钱,来套 红马HONMA高尔夫球杆。

  2. 2015-03-26 17:15 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    @优个网 是么?那我晚上回去用支付宝支付试试,只校验接收的数据一般也是可以伪造的额

  3. 2015-03-26 17:59 | BMa ( 普通白帽子 | Rank:1776 漏洞数:200 )

    @px1624 有的后端还会有验证机制,服务器会校验支付宝传回的数据,与订单金额进行对比,除非大于等于,订单状态才会改变,当然,如果生成的订单就是有问题的,那么订单就可以成功支付

  4. 2015-03-26 18:03 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    @BMa 就算有,一般这个传回数据是可以串改的,下班了,我回去试试,公司不能用支付宝。。。

  5. 2015-03-26 18:06 | BMa ( 普通白帽子 | Rank:1776 漏洞数:200 )

    @px1624 不是传给本地的,完成支付请求后,支付宝直接传给对端服务器

  6. 2015-03-26 18:23 | byr5ec ( 路人 | Rank:10 漏洞数:2 | I'm pursuing all teh time 5h37|_!)

    回调的时候有校验的,是不能支付成功。这类问题,商家应该有异价系统和告警吧,即使你成功了,也不出单不出货。

  7. 2015-03-26 20:52 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    @byr5ec @BMa @优个网 嗯,晚上回来试了试支付,的确是最后还有层防御,串改后的支付成功后,就是直接充值到余额里面了。所以这个评级挺客观。其实研究了下,发现这个逻辑是用支付宝付款后,是先会将支付宝的钱充值到余额中,然后在用余额支付,然后余额支付的时候有判断,大概逻辑是这样子。

  8. 2015-03-26 23:14 | byr5ec ( 路人 | Rank:10 漏洞数:2 | I'm pursuing all teh time 5h37|_!)

    如果真是这样的支付逻辑,效率有点问题吧多一层信息交互,不清楚厂商出于什么样考虑。

  9. 2015-03-26 23:15 | byr5ec ( 路人 | Rank:10 漏洞数:2 | I'm pursuing all teh time 5h37|_!)

    因该不是在余额支付的时候做的判断。

  10. 2015-03-26 23:19 | byr5ec ( 路人 | Rank:10 漏洞数:2 | I'm pursuing all teh time 5h37|_!)

    还是回调做的校验,因为发现价格不对了,才把修改后的金额放到你的个人帐号里,厂商这个行为赞一下。要不然厂商还得给你退款操作。这就是个常规的支付流程。

  11. 2015-03-27 08:34 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    @byr5ec 其实和你理解的不一样,这个设计是这样子的,比如你支付一个500元的东西的时候,你选择支付宝支付,那么当你支付宝支付成功后,其实是系统会自动将你支付宝支付的金额充值到你的余额中。然后在自动从余额中进行扣除,完成下单。然后余额扣除下单这步有校验,支付宝付款的那步是没有校验的,所以影响不算太大,但是还是有影响的,比如1分钱下单后,虽然是充值到了余额,但是还可以对订单进行评论之类的操作。。。

  12. 2015-04-26 18:56 | todaro ( 实习白帽子 | Rank:39 漏洞数:12 | 完结。)

    @px1624 最近测试某站的时候也是这样。厂商越来越鬼精了,本地会有一个余额数据库,是通过校验这个来确定的,提交的时候修改一下余额,看看会不会有什么影响。