《目录》

  • 原理:支付漏洞
  • 实战:无限话费
  • 如何挖掘
  • 案例:修改支付的价格
  • 案例:修改支付状态
  • 案例:修改订单数量
  • 案例:无限制试用
  • 如何防御
  • 支付漏洞常见问题汇总

支付漏洞,是一种很简单的逻辑漏洞。

世界上的公司分为俩种,一种是还没被 黑客 攻击过的,另一种就是已经被 黑客 攻击过的。

所以企业也越来越重视 网络安全 这块,这样的支付漏洞就那么好找了.......

但肯定还是有的,只是隐秘了一些。

上面 “最小黑客” 的抓包技术,是很简单的,学会使用 抓包工具:Burp Suite 即可。


原理:支付漏洞

商户网站接入支付结果有两种方式,一种是通过浏览器进行跳转通知,一种是服务器端异步通知。

  • 浏览器跳转:基于用户访问的浏览器,如果用户在银行页面支付成功后,直接关闭了页面,并未等待银行跳转到支付结果页面,那么商户网站就收不到支付结果的通知,导致支付结果难以处理。而且浏览器端数据很容易被篡改而降低安全性。
  • 服务器端异步通知:该方式是支付公司服务器后台直接向用户指定的异步通知URL发送参数,采用POST或GET的方式。商户网站接收异部参数的URL对应的程序中,要对支付公司返回的支付结果进行签名验证,成功后进行支付逻辑处理,如验证金额、订单信息是否与发起支付时一致,验证正常则对订单进行状态处理或为用户进行网站内入账等

支付漏洞大概分为:

  • 修改支付的价格,原理在案例里
  • 修改支付状态,    原理在案例里
  • 修改订单数量,    原理在案例里
  • 修改附属值(如优惠卷),选择相关优惠劵后,接着修改金额大于或等于商品的价格就可以,或直接修改其为负值进行尝试,最后进行支付,如果对这点没有加以验证,那么问题就会产生,直接支付成功。
  • 越权支付,存在 user=id(123),这种传参时,尝试改改id,尝试用别人的钱包买自己的包包。
  • 无限制试用

无论是哪一种,都是通过 抓包工具:Burp Suite  把被拦截到的数据包改成自己想要的数据(价格)。

非常非常的简单,只需要会使用抓包工具:Burp Suite  即可。


实战:无限话费(点卷)

靶场url:xxx。

本文仅展示最简单的一种,深入见实战后面的案例(不需要懂代码,会用 Burp Suite 就行)。

start,先注册自己的账号。

支付漏洞,一般都出现于 购买、充值 的地方。

点进去,如图。

金额为 0.00 RMB,到商品中心看看,刷一波......

点击立刻购买,发现账号里没有 RMB买不了。

哼,一气之下把购买商品的数量改成了 负数。

点击提交订单。

网页报错了,而且惊喜的是您回到账户中心就发现钱到账了。

这是因为报错的同时,程序也在线执行了。

那为什么改为 负数 就有支付漏洞呢 ???

我们购买 CF 点卷时,程序的逻辑是这样的。

  • 此账号的余额 - (当前商品 * 数量)

我的账号余额是 0.00 ,当前商品的价格是 9.2,我买的数量是 -1。

程序计算的就是:0.00 - (9.2 * -1)

= 0.00 - (- 9.2)

= 0.00 + 9.2 ( 减减就是加 )

= 9.2

可为啥我的是 18.40 呢,您大可猜一下 ??

下面的支付漏洞会难一些,不需要代码审计( 即不需要编程基础,支付漏洞都很简单 )。


如何挖掘

抓包工具:Burp Suite。

  • §找到关键的数据包

可能一个支付操作有三四个数据包,我们要对数据包进行挑选。

  • §分析数据包

支付数据包中会包含很多的敏感信息(账号,金额,余额,优惠),要尝试对数据包中的各个参数进行分析。

  • §不按套路出牌

多去想想开发者没有想到的地方

  • §pc 端尝试过,wap 端也看看,app 也试试。

挖到某个 网站/APP 的支付漏洞,强烈建议数额不要超过 10 RMB,渗透测试成功后火速提交,不要留着,小心带上 玫瑰金手铐

转载了 4 篇支付漏洞方面的文章,写的很好。

因为某些原因以后可能就看不到了,所以我先搬过来。

  • 转载:《中国国旅一元买任意张数旅游票》
  • 转载:《同程旅交汇低价支付高价订单订单随意修改》
  • 转载:《同程旅游网某处支付漏洞》
  • 转载:《艺龙旅行网严重支付漏洞》

按照顺序,依次? 展示。


案例:修改支付的价格

支付三步曲——订购、订单、付款。

  • 三个步骤当中的随便一个步骤进行修改价格测试,如果前面俩步有验证机制,那么您可在最后一步付款时进行抓包尝试修改金额,如果没有在最后一步做好检验,那么问题就会存在,其修改的金额值您可以尝试小数目或者尝试负数。

漏洞详情

  • 漏洞标题: 中国国旅一元买任意张数旅游票(支付逻辑漏洞)
  • 相关厂商: 中国国旅
  • 漏洞作者: 昊昊
  • 漏洞类型: 网络设计缺陷/逻辑错误
  • 危害等级: 高

披露状态:

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

简要描述:

中国国旅一元买任意张数旅游票(支付逻辑漏洞)

详细说明:

中国国旅买票的时候可以通过 burp 抓包,修改金额和人数,提交过后可以用 一元买 N 张票

以下是详细修改数据提交过后的截图,burp忘了截图了,大家自己可以试下行不行:

漏洞证明:

adultNum 和 childNum 对应成人和小孩数目,可以修改为任意数值。抓到数据后把金额全都修改成1块,提交后:

修复方案:

大家懂得。望注意下安全,测试的时候身份证、游客名随便填都行~


案例:修改支付状态

订单完成——未完成(傻傻分不清)

  • A 订单 -0001 完成——B订单 -0002 未完成,付款时尝试把订单B的单号给成订单 A

漏洞详情

  • 漏洞标题: 同程旅交汇低价支付高价订单订单随意修改(另种支付漏洞隐患)

  • 相关厂商: 苏州同程旅游网络科技有限公司

  • 漏洞作者: 纳米翡翠

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

  • 危害等级: 中


披露状态:

  • 2015-03-19: 细节已通知厂商并且等待厂商处理中
  • 2015-03-19: 厂商已经确认,细节仅向厂商公开
  • 2015-03-20: 厂商已经修复漏洞并主动公开,细节向公众公开

简要描述:

17u.net 现在叫旅交汇,不知道什么意思。

详细说明:

不知道后台计算的时候是按什么计算的,总之前台是可以通过url修改订单,而且是不需要权限的修改。

漏洞证明:

首先注册一个号码:13111112343,而后正常下单:

到订单里面点查看订单:

点击返回修改。

点提交。

抓包。

重点就在这条url:

http://www.17u.net/WDHandler/LineOrder.ashx?action=updateLine&Platform=net&lineid=4593689&b2bMemberId=207967&TotalPrice=2750.00&TotalMan=1&TotalChild=0&b2cname=13111112343&b2cphone=13111112343&b2cemail=&remark=&dateText=2015-3-19%200:00:00&orderid=254831

经过测试,这条url,可以在不登录的情况下更新订单,也就是只要知道 orderid,就可以更新订单,更重要的是 orderid 是自增值,很容易推测 orderid 号。

接下来,我们来更改我刚才下的单,从上面的url里面有两个地方一个是lineid,一个是totalprice,这两个经过尝试是要与网站里面已有的产品一样的,所以我找了一个便宜的产品,

这个产品的 id 是1806901,价格是 50,

而后拿出上面记录的 url,修改

http://www.17u.net/WDHandler/LineOrder.ashx?action=updateLine&Platform=net&lineid=1806901&b2bMemberId=207967&TotalPrice=50&TotalMan=1&TotalChild=0&b2cname=13111112343&b2cphone=13111112343&b2cemail=&remark=&dateText=2015-3-19%200:00:00&orderid=254831

而后执行一下,随便在哪执行都行,而后再到订单里面看我们的订单,已经变成50块了,

但毕竟是预定,有人为审核在里面,所以即便改了,也没什么大碍,但从程序上来讲,感觉应该算是个bug.先这样吧

修复方案:

DUANG


案例:修改订单数量

一支笔 1 块,买 0 支,或者买 -1 支 (不就等于免费了么??)

漏洞详情

  • 漏洞标题: 同程旅游网某处支付漏洞
  • 相关厂商: 苏州同程旅游网络科技有限公司
  • 漏洞作者: MayIKissYou
  • 漏洞类型: 设计缺陷/逻辑错误
  • 危害等级: 高

披露状态:

  • 2015-04-15: 细节已通知厂商并且等待厂商处理中
  • 2015-04-15: 厂商已经确认,细节仅向厂商公开
  • 2015-04-20: 厂商已经修复漏洞并主动公开,细节向公众公开

简要描述:

同程某处支付漏洞

详细说明:

1:缺陷url。

http://www.17u.net/

2:此处问题在于一些订单可以订大人和儿童票,我们构造-1的大人人数和正数的小孩人数使得钱数为正,即可提交订单成功。

3:构造订单截图,选取的是 88 元的票,-1 的大人,2 的小孩。

提交之后的结果:

4:支付宝支付金额的图:

漏洞证明:

构造订单截图,选取的是 88 元的票,-1 的大人,2 的小孩。

提交之后的结果:

支付宝支付金额的图:

修复方案:

不让提交负数吧。


案例:无限制试用

只需知道银行信用卡号即可消费。

  • 比如试用的参数为2,正常购买的参数为 1。
  • 那么我们购买参数2(试用),会发生什么呢 ?

漏洞详情:

  • 漏洞标题: 艺龙旅行网严重支付漏洞(只需知道银行信用卡号即可消费) 

  • 相关厂商: 艺龙旅行网

  • 漏洞作者: Focusstart

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

  • 危害等级: 高


披露状态:

  • 2016-03-23: 细节已通知厂商并且等待厂商处理中
  • 2016-03-23: 厂商已查看当前漏洞内容,细节仅向厂商公开
  • 2016-03-24: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

感谢壮丁的友情赞助,好基友,一起走。

详细说明:

首先,在艺龙随便下了一个订单,到支付页面,选择信用卡支付。

输入正确的卡号,有效期。

姓名,身份证等相关信息随便输。

居然支付成功了。

那么问题来了。

说明这里只判断信用卡有效期即可成功支付。

接下来就简单了,我们只要尝试爆破出信用卡的有效期即可。

而后发现错误的有效期也能使订单到判定支付是否成功的阶段。

漏洞证明:

所以,下多个订单。

随便点击一个订单到支付页面。

抓包。

POST /epay/isajax/CreditCardExtend/Save HTTP/1.1x-requested-with: XMLHttpRequestAccept-Language: zh-cnReferer: https://secure.elong.com/epay/cn/creditcardextend/433877263696341615trainAccept: application/json, text/javascript, */*Content-Type: application/x-www-form-urlencodedAccept-Encoding: gzip, deflateUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)Host: secure.elong.comContent-Length: 360Connection: Keep-AliveCache-Control: no-cacheCookie: SessionGuid=42ff44d5-95e9-4a84-a57b-0199c4a28a59; com.eLong.CommonService.OrderFromCookieInfo=Pkid=50&Parentid=50000&Coefficient=0.0&Status=1&Priority=8000&Makecomefrom=0&Savecookies=0&Cookiesdays=0&Isusefparam=0&Orderfromtype=1; s_cc=true; s_sq=elongcom%3D%2526pid%253Dmy.elong.com%25252Ftrain%25252Ftrainorder_cn.html%2526pidt%253D1%2526oid%253Dhttp%25253A%25252F%25252Fmy.elong.com%25252Ftrain%25252Ftrainorder_cn.html%25253Frnd%25253D20160323142748598%252523%25253F%2526ot%253DA%2526oi%253D413; CookieGuid=bf5e468c-2c0e-4e32-a174-c6b00a59600b; Esid=72832668-11ae-4cf6-8486-f2a53dda7c15; member=********; Lgid=LRpRtrsC3gsExwGXhEk%2flpaR3waA7McUH7SGryL5%2fSFdUfZTcxrrKJN7gDYF38TJf%2b6813mw0I7%2bEqLpl1r2dNM00g3TNSUIsbfjUZc3xAoySWAQkZq3Hr3%2fuLPImoK3; s_visit=1; route=d99f2606f97cd9d480bdb1efdeca5346; ASP.NET_SessionId=go0f0j550ckcs055bbbdmvu1; TLTCNT=CHG-OWEBTJ10000000000077396language=cn&id=§433877263696341615train§&paymentInfo.CreditCardNumber=******&paymentInfo.Cardholder=%E6%B5%8B%E8%AF%95&paymentInfo.FirstName=&paymentInfo.MiddleName=&paymentInfo.LastName=&paymentInfo.CardValidity=§2022-1§&paymentInfo.CertificateTypeID=2&paymentInfo.CertificateNumber=321321&paymentInfo.CheckedLast4Num=false&paymentInfo.IdOfCardsHistory=

订单 + 有效期爆破,隔几秒放过。

那么订单都会到判断支付是否成功的阶段,如果订单支付成功,说明有效期是正确的。

成功爆破出信用卡有效期并成功支付。

修复方案:

信用卡支付逻辑是不是该有 有效期 + CVV码 + 手机验证码组成 ??


如何防御

  • § 后端检查每一项值,包括支付状态。
  • § 校验价格、数量参数,比如产品数量只能为正整数,并限制购买数量。
  • § 与第三方支付平台检查,实际支付的金额是否与订单金额一致。
  • § 支付参数进行 MD5 加密、解密、数字签名及验证,这个可以有效的避免数据修改,重放攻击中的各种问题。
  • § 金额超过阈值,进行人工审核。

支付漏洞常见问题汇总

(1) 什么是支付漏洞?

  • 支付漏洞属于逻辑漏洞的一种,是和支付的业务有关,支付业务中出现的逻辑漏洞全部属于支付漏洞。

(2) 支付漏洞危害大吗?

  • 支付业务一般和资金挂钩,如果支付宝存在支付漏洞,我可以不断的刷钱,您觉得危害如何?

(3) 支付漏洞常见吗?

  • 支付漏洞还是比较常见的,特别是一些小商城、小网站、非法网站容易出现一些支付漏洞

(4) 支付漏洞测试需要负法律责任吗?

  • 支付漏洞测试用较小的金额,一般控制在10块内,金额不要过大,而且测试成功后火速提交,不要留着。

(5) 快捷支付的原理?

  • 快捷支付实际上就是跳转到支付页面,而后您付钱,而后商家获取到支付结果(早期由依赖浏览器跳转的支付、后面多为异步传输(付钱成功后,支付商和商家有自己的联系通道,不依靠客户浏览器跳转))

(6) 支付漏洞需要代码审计吗?

  • 不需要,而且一般而言您也没有目标源码,无法进行审计

(7) 支付漏洞挖掘的核心思想是什么?

  • 不仅仅是支付漏洞,在逻辑漏洞中,要有发散性思维,多想一些别人一般不会想到的操作,比如支付漏洞,买几个商品,而后在数量那里有负数,而后将最终价格变为 0

(8) 常见支付漏洞:

  • 修改支付价格、修改支付状态、修改订单数量、修改优惠价优惠价格和使用限制、越权支付、无限试用

(9) 修改支付价格具体操作?

  • 修改支付价格,主要是通过抓包,比如您买一个电脑,标价6999,而后您发现数据包里面有6999的传参,而后我改成了6.999,而后跳转到支付页面,我付了6.999将这个电脑买下,也可以把金额改为负数

(10) 修改支付状态具体操作?

  • 比如您购买一个1000的商品,而后又购买一个10块的商品,两个订单号不同,而后您抓包,将1000块支付发送的数据包的订单号改为10块,而后付了10块钱,发现商品买到手了

(11) 修改订单数量具体操作?

  • 订单数量的操作一般都是负数,买一个贵的,几个便宜的商品,而后贵的商品的价格为-1,于是乎这个贵的商品的价格就是个负数,比如 -8999,而 后我再买几个商品,加起来也是8999,那么计算总金额的时候就是 -8999+8999 == 0 ,于是乎 0 元购买了

(12) 修改优惠卷优惠价格和使用限制具体操作?

  • 这里出发点,不在于商品本身了,核心在于优惠卷,比如优惠卷价格修改,比如使用N张优惠卷

(13) 越权支付具体操作?

  • 越权支付,修改支付金额的用户id号,扣其他用户的钱

(14) 支付漏洞仅仅在WEB端有吗?

  • 那里都有,不仅仅WEB,有支付的方面都可能有,这个要开阔思维,我上次出去吃个烧烤,扫码点单顺手一个XSS

(14) 如果传参加密了怎么办?

  • 看到第一件事是别慌,加密不代表杜绝漏洞了,先看看能不能找到加密方式,而后买不同价格东西,买同价格的东西,去比对数据包

(15) 如何防御支付漏洞?

  • 后端检测一切传参、金额大的话人工审核、传参中不涉及金额、加密传参

(16) 越权支付漏洞怎么预防?

  • 做好权限控制呗

(17) 靶场支付漏洞怎么做?

  • 修改支付价格和修改支付数量都行

(18) 支付漏洞和其他逻辑漏洞的核心是什么?

  • 控制参数

(19) 有没有一些神奇案例?

  • 以前艺龙似乎出现一个支付漏洞,只需要信用卡账号有信用卡有效期就可以直接消费。

(20) 如何提升自己在支付漏洞方面的挖掘?

  • 《乌云支付漏洞大全》。

[6] 支付漏洞( 0 元购 )相关推荐

  1. 手把手教你阿里云钉钉智能前台如何实现0元购

    2017年5月开始阿里巴巴旗下阿里云公司推出唯一 一款针对用户的幸运券,这款幸运券就是大家俗称的优惠券了.目前钉钉智能前台m1已经上升为钉钉智能前台m2了,它们属于钉钉考勤机系列. 这款优惠券支持阿里 ...

  2. 新路由2VS斐讯k2,这样的“0元购”你还买么?

    路由器作为家庭网络的必备电子产品,市场需求持续攀高,而且随着市场消费的升级,用户对智能路由器的需求也逐渐高涨.一款路由器是否有创新的产品理念,是否有特色独到的功能,是否能够满足用户某些个性化的需求等, ...

  3. 揭穿0元购幕后真相,看好了,别上当!

    0元购对很多人极具诱惑力,但你对产品感兴趣的同时一定要看好,说不定就是一个巨大陷阱.那如何辨别呢,请继续往下看.首先你要知道你的钱进了谁的口袋?是不是进了个人或是不出名小公司账户?有没有可能拿着你的钱 ...

  4. [转载]中国移动深度定制首推“0元购TD手机”补贴政策

    内容摘要:中国移动陆续制定了系列的补贴政策来推动TD手机销售.近日首推的"0元购TD手机"补贴政策,是迄今为止三大运营商中补贴力度最大的3G手机销售政策. 7月28日消息,知情人士 ...

  5. 湘南巷子商城“0元购”逆袭上线

    网上购物打折促销已经不足为奇,但湘南巷子商城作为电商界冉冉升起的一颗新星,凭借"限单特卖"的创新营销模式,实现成功突围.据悉,湘南巷子商城每天限量1000单,当交易达到上限后订单系 ...

  6. 阿里云双11活动撸福利攻略主机篇 建站模版0元购

    一年一度的阿里双11活动预热早已来袭,点火炬.淘宝站队.抓黄金猫等应接不暇. 作为阿里巴巴旗下的云服务,2017年阿里云双11活动已于1024程序员日启动. 购买产品前领取幸运券,领取并使用幸运券购买 ...

  7. 联璧金融崩盘!斐讯0元购抛弃合作伙伴求生,以后还能投资什么?

    800亿网贷平台唐小僧爆雷,连带着市场上的其他理财平台也倒了大霉. 事情的起因是这样的:唐小僧.钱宝网.联璧金融.雅堂金融等四大理财平台一起被誉为民间四大高额返利平台.如今除了联璧金融外,其他三大平台 ...

  8. 京东试用申请,一键自动申请京东所有试用商品,真正的0元购哦。

    众所周知,京东上每天多有各式各样的试用商品,但是数量有限,每天申请的人数也是成千上万人,这时候可以通过软件代替人工进行申请试用,只需要填写京东账号的Cookie即可自动申请,软件里面有使用教程,亲测有 ...

  9. [揭秘]电商“一元购”后又现“0元单”,究竟是个什么“鬼”?

        导读:经常逛网购论坛或导购网站的消费者会发现,不少网友都有"0元单"经历.那么,究竟什么是"0元单"? 目前市场上流行的平台有一元云购和0元抢购网站,买 ...

最新文章

  1. 重磅,武汉大学获捐10亿元!
  2. IDEA中创建maven项目后解决main文件夹下目录不全的问题
  3. python画散点图分布-python画图汇总(持续更新)
  4. php和python哪个学起来简单一点-python和php哪个容易学
  5. 【错误记录】安装 Visual Studio 2013 中文语言包报错 ( 需要 Microsoft Visual Studio Test Agent , 但此计算机上并为安装它 )
  6. 对微软的敌视何时休? 从一篇语言评论文章对C#的评价说起
  7. 如何在php中插入map热点,php中关于Map热点的运用
  8. PoolTogether 奖池开奖一名用户赢得 43,760 美元,本金仅为 73 美元
  9. PowerLinux 服务器上安装 Oracle (详细步骤)
  10. 大纲2.1 计算机网络
  11. 腾讯云服务器迁移报错Other go2tencentcloud are running.
  12. 喝酒神器摇骰子小程序源码分享以及搭建效果图
  13. Stream.min
  14. python获取他人的ip_python - 获取访问者的IP地址
  15. Python简介及入门
  16. ipa包脱壳、解析、info.plist文件基本信息介绍
  17. redis自定义lua脚本
  18. TS高级类型 Record、Pick、Partial、Required、Readonly、Exclude、Extract、Omit、NonNullable 使用
  19. PDF格式文件怎么编辑?分享一个PDF编辑的方法
  20. amp模式_AMP的完整形式是什么?

热门文章

  1. iOS播放器、Flutter高仿书旗小说、卡片动画、二维码扫码、菜单弹窗效果等源码
  2. 28岁的IT人生反思
  3. js-xlsx 读取Excel解析
  4. windows系统vmware重装步骤
  5. 一 、单片机IO实验
  6. 谁痛苦谁改变 落到谷底时,唯一的出口就是向上
  7. 将Twitter4j与Scala结合使用以执行用户操作
  8. 洛谷 - P3374 树状数组1
  9. python 方差分析_使用Python的重复测量方差分析
  10. 3w最简单led灯电路图_三种常用的LED驱动电源电路图详解