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

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

缺陷编号:wooyun-2015-0135544

漏洞标题:七夕我是如何一分钱看电影的(微影时代客户端缺陷)

相关厂商:wepiao.com

漏洞作者: 路人甲

提交时间:2015-08-20 11:46

修复时间:2015-11-23 11:49

公开时间:2015-11-23 11:49

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

危害等级:高

自评Rank:20

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-08-20: 细节已通知厂商并且等待厂商处理中
2015-08-25: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2015-10-19: 细节向核心白帽子及相关领域专家公开
2015-10-29: 细节向普通白帽子公开
2015-11-08: 细节向实习白帽子公开
2015-11-23: 细节向公众公开

简要描述:

七夕到了,晚上去电影院看个电影,万一太晚回不去了呢

详细说明:

其实这是一类问题。
app开发者为了开发方便,经常会把一些用来对敏感信息签名验证的私钥硬编码在客户端里。这样通过简单的逆向就能拿到这些私钥和签名算法,来伪造一些敏感的行为。
这里以微票儿安卓客户端中的微信支付为例,展示下这种漏洞的危害。
主要存在的问题是,在用微信支付时,订单信息由客户端生成,服务端并没有对支付的价格做验证,因此可以更改为任意价格,一分钱包场。
下好订单后选微信支付,burp抓包。

POST /pay/genprepay?access_token=yqaiSYReJm75yYPe18F3XFkYM47w95DSGYB1GiLwBRIWt-7JC0eUDV8turLu2eU6ZeqNohoTEwVphDNoNoc8ZNUuTpxUrmR2SPOJWYVTwxU HTTP/1.1
Accept: application/json
Content-type: application/json
Content-Length: 670
Host: api.weixin.qq.com
Connection: Keep-Alive
{"sign_method":"sha1","timestamp":1440039648,"package":"bank_type=WX&body=%E5%8C%97%E4%BA%AC%E5%8D%9A%E7%BA%B3%E5%9B%BD%E9%99%85%E5%BD%B1%E5%9F%8E%28%E9%A1%BA%E4%B9%89%E5%BA%97%29%3A7%E5%8F%B7%E5%8E%85%3A%E6%96%B0%E5%A8%98%E5%A4%A7%E4%BD%9C%E6%88%98%3A1%E5%BC%A0&fee_type=1&input_charset=UTF-8&notify_url=http%3A%2F%2Fandroidcgi.wepiao.com%2F2015061201%2Fwechat%2Fnotify&out_trade_no=150820110152678479&partner=1221123101&spbill_create_ip=196.168.1.1&total_fee=5300&sign=6455B17E4252B147C45513F78DF05406","noncestr":"594ca7adb3277c51a998252e2d4c906e","appid":"wx188095e66e460dc5","app_signature":"9e2731bd039fe9dee29bd4beccc2b50c94f1e6b0","traceid":"crestxu_1440039648"}


发现在提交的json中的package里有total_fee这个字段。
这里有两个签名需要过掉,一是package里的sign=xxx这个签名,另外一个是json里app_signature这个签名。
逆向可知,第一个签名是加一个&key=6aa3048fd034778fbba75e342bb4d2c2后md5,第二个签名是把json转成url的形式进行sha1。
写脚本模拟这个过程,详情请见测试代码部分。
将python输出的结果替换掉原请求包中的内容即可对任意订单一分钱支付。

漏洞证明:

919A8018-003E-4ACB-8783-4791DF73AAA3.png


支付成功即可收到短信。

修复方案:

将订单生成等敏感逻辑放在服务端。
不要过分相信客户端的数据,即便已经进行签名验证。

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2015-11-23 11:49

厂商回复:

漏洞Rank:15 (WooYun评价)

最新状态:

2015-08-25:漏洞已经修复