当前位置:WooYun(白帽子技术社区) >> 安全测试 >> 支付漏洞的三种常见类型

支付漏洞的三种常见类型

imlonghao | 2012-08-26 19:03

很久很久以前剑心大叔叫我写过这样一篇文章,当时还没放假,就没去搭理他,嘿嘿。最近,小E又来找我写关于支付漏洞的文章,好吧,写就写了,趁暑假还有一点余额,就写这篇文章和大家来谈谈支付漏洞。(写得不好,大牛勿怪)

[各种求WB换爱疯......]

----------

根据乌云上的案例,支付漏洞一般可以分为三类:一是在支付过程中直接发送含有需支付金额的数据包;二是没有对购买数量进行限制;三是程序的异常处理。下面就和大家说说这三种情况。



一:支付过程中直接发送含有需支付金额的数据包(常见)

危害指数:星星星星星

这种案例非常常见,主要针对支付宝等需要第三方支付的案例。开发人员往往会为了方便,直接在支付的关键步骤数据包中直接传递需要支付的金额,这种,只需要开个Fiddler2,甚至是直接通过审查元素就可以修改到需要支付的金额。我们来看一看乌云上的几个案例:

[link href="WooYun: 顺丰宝业务逻辑漏洞"]顺丰宝业务逻辑漏洞(WooYun-2011-02272)[/link] @空虚浪子心

[link href="WooYun: 淘宝网某处存在严重支付漏洞"]淘宝网某处存在严重支付漏洞[/link](WooYun-2012-07293) @imlonghao

[link href="WooYun: 考试吧支付缺陷"]考试吧支付缺陷(WooYun-2012-07380)[/link] @jxs

[link href="WooYun: 263通信某处存在严重支付漏洞"]263通信某处存在严重支付漏洞(WooYun-2012-07528)[/link] @imlonghao

这里我就以淘宝网的那个支付漏洞来讲解一下,淘宝网手机充值这个地方的漏洞最为典型。



从这个发送的数据包中,我们可以发现开发人员直接将金额(seriesPrice)和购买短信的数量(seriesNum)一起发送,这是十分危险的操作。黑客可以通过修改seriesPrice和seriesNum的值,来达到1元购买10000条短信甚至是更多的短信数量。

从经济利益上来讲,这对厂商来说是一个大的损失,中间差额非常巨大!

不过,厂商非常负责任,当天就确认了漏洞并进行了排查。

修复方案:不直接在数据包中加入需要金额和数量等敏感数值。

以上面的漏洞为例,这些短信都是以套餐的形式出售的,可以发送套餐的ID,然后由服务器来生产金额和数量,然后直接生成KEY走支付宝。



二:没有对购买数量进行限制(常见)

危害指数:星星星星(按站点类型而异)

这种案例也比较常见,在乌云中也有挺多的案例。产生的原因是开发人员没有对购买的数量进行严格的限制,当购买的数量是一个负数时,总额的算法仍然是"购买数量x单价=总价",所以这样就会导致有一个负数的需支付金额。若仍然支付成功,则可能导致购买到了一个负数数量的产品,也有可能返还相应的积分/金币到你的账户上。但是,这种情况不可能发生在通过支付宝支付的订单中(虽然我曾经也想过,但是是不行滴....),因为显然支付宝是不支持一个负数金额的订单,所以这种情况多数发生在一个有站内货币的网站。我们来看一个案例:

[link href="WooYun: 又拍网旗下某站存在严重支付漏洞"]又拍网旗下某站存在严重支付漏洞(WooYun-2012-06589)[/link] @imlonghao

[link href="WooYun: WHM用户管理系统代码逻辑错误导致逃费"]WHM用户管理系统代码逻辑错误导致逃费(WooYun-2011-01712)[/link] @softbug

[link href="WooYun: 投注网刷元宝漏洞"]投注网刷元宝漏洞(WooYun-2012-11234)[/link] @imlonghao

[link href="WooYun: m1905电影网存在严重支付漏洞"]m1905电影网存在严重支付漏洞(WooYun-2012-06708)[/link] @imlonghao

这里我们用m1905进行讲解,这里测试的是购买VIP



上图是一个修改后的数据包,number原本应该是一个正数,但开发人员并没有严格限制number的范围,所以当我们输入一个负数的情况下,就出现了下面的情况。







由于一个错误的数量,所以就导致了我们的账户上多了30元~~~~

这种的危害比上一个就要小一些了,因为只是站内的货币,具体危害还要按网站的规模大小以及货币的对人民币的比率来区分。如果只是很小的网站,那就没什么意义;但如果是支付宝之类的,嘿嘿,你懂的。

修复方案:严格控制购买数量的大小,不允许数量为负数,控制总支付金额是一个正常的数。



三:程序的异常处理

危害指数:星星星星(按站点类型而异)

程序的异常处理比较少见,不过也是有案例的。程序的异常处理,就是指支付的数据包异常的程序的错误处理。这种异常可以是数据与KEY不符,支付的金额有错误,购买的数量不正确等等。程序的异常处理出现的原因主要是开发人员对出现异常后的处理不当造成的。还是不懂?我们来看几个例子:

[link href="WooYun: 新浪微号存在支付绕过漏洞"]新浪微号存在支付绕过漏洞(WooYun-2012-05316)[/link] @imlonghao

[link href="WooYun: 115网盘存在支付绕过"]115网盘存在支付绕过(WooYun-2012-05353)[/link] @imlonghao

我们以115网盘绕过为例,问题出现在开通VIP的过程中。



q是开通的月份,也就是数量。这里我们将其改成了9999999999999999999999999999999999999999999999999999999999999999999999999999999999(总之很多个9啦),程序的异常处理直接将应支付金额变为了0



如上图所示,我们之需要输入一个安全密码,就可以使用0个枫叶来支付这笔订单了~

微号的问题也同属一类,将金额修改,错误,然后直接绕过了支付过程,直接支付成功~

这类问题的出现多数是程序员的大意造成的,没有对异常数据进行很好的处理,导致了问题的产生。

修复方案:根据网站的需要来调整异常处理的方案,发现异常,可以直接报错,拒绝继续运行。



总结

上述给他们介绍的三种支付漏洞常见的类型,我相信在这个互联网发达的时代这仅仅只是支付漏洞的冰山一角,随着科技的日新月异,更多的利用方案也会慢慢浮现出来。

有人说我运气非常好,能撞到那么多的支付漏洞。其实,并不是运气好,而是擅于去发现漏洞。就像上面的淘宝的漏洞一般,那是右下角突然弹了一个说送了我30条免费的短信条数。有多少人会去点X?

"生活中并不是缺少漏洞,只是你缺少了一双擅于发现漏洞的眼睛"


转帖不留地址MJJ~~http://imlonghao.com/post/2012-08-24/支付漏洞的三种常见类型

请点这里↓↓

分享到:
  1. 1#
    回复此人 感谢
    风萧萧 (但是爱上了,第一步是失去自己,第二步就是失去你的爱) | 2012-08-26 19:04

    .

  2. 2#
    回复此人 感谢
    zhk | 2012-08-26 19:12

    先赏你个WB

  3. 3#
    回复此人 感谢
    小屁孩 (Hello world) | 2012-08-26 19:15

    让人犯罪、、

  4. 4#
    回复此人 感谢
    f1eecy | 2012-08-26 19:15

    Good!

  5. 5#
    回复此人 感谢
    xsser (十根阳具有长短!!) | 2012-08-26 19:17

    恩赐一只乌云币

  6. 6#
    回复此人 感谢
    小一 (http://www.90blog.org) | 2012-08-26 19:21

    广告广告,前排插入。。。http://www.90blog.org/archives/1107.html

  7. 7#
    回复此人 感谢
    Ra1nker ((麻麻说,签名要长……)‮) | 2012-08-26 19:50

    这个可以出来了

  8. 8# 感谢(2)
    回复此人 感谢
    imlonghao | 2012-08-26 20:13
  9. 9#
    回复此人 感谢
    zeracker (多乌云、多机会!!! 微信公众号:301在路上) | 2012-08-26 20:17

  10. 10# 感谢(1)
    回复此人 感谢
    imlonghao | 2012-08-26 20:19

    @zeracker @xsser 亲,表情功能来一个~

  11. 11#
    回复此人 感谢
    小一 (http://www.90blog.org) | 2012-08-26 20:39

    @imlonghao 不要贴全文啊,果断被人采集啊,发个链接还能多赚点IP

  12. 12# 感谢(1)
    回复此人 感谢
    imlonghao | 2012-08-26 20:45

    @小一 反正采集不留连接的MJJ,他们自己看着办吧~~~

  13. 13#
    回复此人 感谢
    RAINMan | 2012-08-26 20:56

    赏!

  14. 14#
    回复此人 感谢
    0x334 (我要吃肉,好想吃肉啊) | 2012-08-26 21:31

    对于第一个,个人觉得用ID来传递还是不够,应该加传递参数校验,防止传递的ID值被篡改

  15. 15# 感谢(1)
    回复此人 感谢
    imlonghao | 2012-08-26 21:46

    @0x334 嗯,可以生成一个TOKEN之类的防止数据包被篡改的。这里貌似改不了了,在我博客上加上了。如果id与服务端设置的套餐金额相对应,即使id的值被修改,那么也只是对应到了其他别的套餐或者出错。但如果在非套餐类的例如充值的这个过程的话TOKEN就很重要了。呵呵.~

  16. 16#
    回复此人 感谢
    horseluke (微碌) | 2012-08-26 22:08

    感谢分享~

  17. 17#
    回复此人 感谢
    horseluke (微碌) | 2012-08-26 22:16

    另外,你改微博名改那么长干啥,我都不敢@ 你了,怕你不喜欢......-_-||

  18. 18#
    回复此人 感谢
    Thanks (freebuF资深屌丝) | 2012-08-26 22:38

    nice:)

  19. 19#
    回复此人 感谢
    px1624 (aaaaaaaaa) | 2012-08-26 22:46

    撸过

  20. 20# 感谢(2)
    回复此人 感谢
    gainover (">_< ' / & \ 看啥,没见过跨站字符么) | 2012-08-26 23:29

    文章条理写的很好。楼主真的是初中刚毕业么,作文是不是经常得高分?

  21. 21#
    回复此人 感谢
    一刀终情 ((注意看时间,没乱哦!) ‫(1314520)) | 2012-08-27 00:03

    @gainover 确实,很有条理~~适合高中作文吧~

  22. 22# 感谢(1)
    回复此人 感谢
    imlonghao | 2012-08-27 08:53

    @一刀终情 @gainover @horseluke 微博名字长能增加能见度,怎么会不喜欢,只不过@ 我了你会写少很多字。。我只会写这种东西,作文真心写不好。。。

  23. 23#
    回复此人 感谢
    Hxai11 (星辰将为你的眼,而风儿则为你的双手) | 2012-08-27 11:19

    很不错,说的很好!!

  24. 24#
    回复此人 感谢
    leehenwu (关注安全) | 2012-08-27 11:41

    不错不错。。。。

  25. 25#
    回复此人 感谢
    瓜瓜 ((我要好好学习天天向上......)‮ 很帅)) | 2012-08-27 14:16

    刚才遇到一个可以更改..但是人家还需要审核一个自己的申请..神马缴费账户缴费金额..

  26. 26#
    回复此人 感谢
    疯狗 (阅尽天下漏洞,心中自然无码。) | 2012-08-28 15:45

    整理的很不错,特别是第三点,一些支付漏洞不仅仅出在金额与时间上,设计的缺陷、程序的异常这个思路很赞!

  27. 27#
    回复此人 感谢
    凤凰 (凤凰涅磐,浴火重生) | 2012-08-28 16:21

    学习,多谢分享

  28. 28#
    回复此人 感谢
    瘦蛟舞 (科普是一种公益行为) | 2012-09-17 15:33

    楼主威武~

  29. 29#
    回复此人 感谢
    CHForce (带马师) | 2012-09-17 15:59

    求视频演示 详细过程

  30. 30#
    回复此人 感谢
    CHForce (带马师) | 2012-09-17 16:09

    求修改数据包的软件啊,看图片里面修改得很轻松啊

  31. 31#
    回复此人 感谢
    冰锋刺客 (往日不可追) | 2012-09-18 01:54

    精彩啊 ,呵呵  。 可惜我只利用过一次,不好找额

  32. 32#
    回复此人 感谢
    墨水心_Len | 2012-09-18 08:43

    感谢洞主。已拿走,已分享...

  33. 33#
    回复此人 感谢
    Z.J | 2012-10-26 22:05

    好文!

  34. 34#
    回复此人 感谢
    Getshell | 2013-05-01 20:20

    真不错啊

  35. 35#
    回复此人 感谢
    廷廷 (想法最重要) | 2013-05-01 21:08

    @Getshell 挖坟。。。

  36. 36#
    回复此人 感谢
    小贱人 (资深菜鸟) | 2014-04-22 14:47

    mark

  37. 37#
    回复此人 感谢
    wkc_2014 | 2014-05-16 16:50

    学习了

  38. 38#
    回复此人 感谢
    chavez_wang | 2015-05-16 10:01

    mark下

  39. 39#
    回复此人 感谢
    平底斜 (性骄奢,好声色,为文有汉魏风) | 2015-05-24 21:12

    任何时候都有新人初入江湖,肯定用得着

  40. 40#
    回复此人 感谢
    情痴 | 2015-11-25 17:38

    学习了,谢谢大牛分享

添加新回复

登录 后才能参与评论.

WooYun(白帽子技术社区)

网络安全资讯、讨论,跨站师,渗透师,结界师聚集之地

登录