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

缺陷编号: WooYun-2015-143310

漏洞标题: 淘宝HTML5版私钥泄漏

相关厂商: 淘宝网

漏洞作者: 路人甲

提交时间: 2015-09-26 16:25

公开时间: 2015-11-12 13:46

漏洞类型: 敏感信息泄露

危害等级: 中

自评Rank: 6

漏洞状态:厂商已经确认

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

Tags标签:敏感信息泄露

1人收藏收藏 分享漏洞:

0


漏洞详情

披露状态:

2015-09-26: 细节已通知厂商并且等待厂商处理中
2015-09-28: 厂商已经确认,细节仅向厂商公开
2015-10-08: 细节向核心白帽子及相关领域专家公开
2015-10-18: 细节向普通白帽子公开
2015-10-28: 细节向实习白帽子公开
2015-11-12: 细节向公众公开

简要描述:

淘宝H5版私钥(淘宝无线称之为app secret)可被逆向分析javascript代码得到,得到私钥后,攻击者可以自行计算能通过服务端验证的md5签名,使签名验证失去意义,无法保证用户提交的业务参数在传输过程中未被篡改

详细说明:

私钥,也叫app secret, secret key,是API提供者(如淘宝、支付宝、微信)与客户端开发者(如微信、淘宝iOS版,淘宝H5版)约定的一个字串。打个通俗的比方,私钥就是谍战片里的密码本。这东西泄漏了,就不安全了,得换个新的。淘宝的问题是,密码本藏得不够好,就算你每小时换一次,敌人一分钟就拿到新密码本了。

客户端每次发起API请求时,都先将业务参数按顺序成一个串(如nick=codingdog&password=hahahaha),再将私钥拼接在头部(或者尾部,或者头尾都有)形成一个新串,然后对新串做不可逆的消息摘要(如md5, sha1,为描述方便,后面都说成是md5值)。md5值也会一起发送给服务端。

服务端收到请求后,使用完全一样的算法,和同样的私钥,计算一个md5值出来,然后和客户端传来的md5对比,如果相等,则检验通过,继续执行后面的业务逻辑。

由于md5, sha1等消息摘要算法的冲撞概率极低,若在传输过程中,第三方篡改了某个业务参数,则服务端收到api请求后,计算出来的签名与客户端传递的签名不相等,服务端便认为这是一个非法的api请求,不执行后面的业务逻辑。

通常开放平台都会有多个客户端,用不同的appkey(成客户端的唯一id)来区分,每个appkey对应的私钥都不相同。

综上所述,签名是一个用于保证业务参数在传输过程中未被篡改的安全机制。国内外大公司的开放平台均采用此机制,如国内的淘宝、淘宝无线、支付宝、微信,国外的yahoo, facebook, github, amazon。

淘宝h5版是淘宝官方的移动版网站,买家可以在其上搜索、浏览、购买商品,以及确认收货、评价交易,功能虽不如iOS和Android客户端丰富,但也涉及了交易这样的核心业务。

若黑产从业者获得了私钥,可非常方便展开中间人攻击,例如说:买家A通过H5版网页给卖家B一个好评,黑产从业者通过网络截取API请求,将好评改为差评,并重新计算一个签名,淘宝服务端无法得知有人篡改了买家A的真实意图,会请这个差评写入数据库。

好在支付宝风控体系比较完善,不会仅仅依靠签名一个因素来保证资金安全,还会有历史行为、可信账户、黑名单、短信校验、意外保险多种手段保障客户利益,黑产从业者即使获得了私钥,也不太可能直接转走用户的钱。但黑产从业者只需通过网络嗅探获取用户的session id,即可在用户不知情的情况下做非资金类操作——只要有对应的API,如收藏店铺、评价、下单但不付款,并由这些操作衍生出一些经济利益。淘宝的API是跑在HTTP上的,没有SSL,只有登录页面是HTTPS的(这只能防止用户密码被人通过网络监听窃取,不能保护收藏、下单等API)

淘宝的native客户端的私钥保护做得较好,此次出现漏洞的是H5版,其JS代码只使用了压缩、函数和变量重命名、匿名函数来降低js代码的可读性,以便让攻击者找不到私钥,但经过上述处理的js代码并非完全不可读,我花了一些功夫,仍然成功将私钥提取出来了。

它的appkey是12574478,secret是6dbf98274**********d583ae54

----

另外,开放平台这个东西,对中小企业来说都是高科技,除了BAT级别的巨头,很少有公司有像样的开放平台产品(网关是开放平台的核心),甚至一些估值10亿美元的独角兽公司也没有专业的开放平台。

一些小企业的安全状况更加糟糕,连个签名验证机制都没有,还有一些公司则是把私钥明文放在JS或者客户端配置文件里。

利益相关:我开发了一个开放平台产品,可以让客户不必写代码就拥有amazon, facebook, 淘宝这样的开放平台,功能全面程度肯定是不如巨头,某些细节有胜出,为免广告嫌疑,不提产品名和公司名。近几天正好研究怎么保护js中的私钥,做完之后想看看大厂是怎么做的,结果碰巧发现淘宝H5版的保护力度比较低。

漏洞证明:

以下是获取私钥的截图:

修复方案:

1. 更换app secret,因为已经泄漏了。而且更换app secret就是一条数据订正,和一次js发布,可以迅速上线。

2. 强化JS端信息保护,使用更加强力的代码混淆算法

3. 全面启用HTTPS

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


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:5

确认时间:2015-09-28 13:45

厂商回复:

您好,经确认当前手淘h5应用架构下,在页面中不会出现私钥,您在前端获取到的只是一个普通的token,作用类似csrf token。感谢您对我们的关注和支持!

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

淘宝HTML5版私钥泄漏相关推荐

  1. 淘宝特价版给拼多多送芒果,网友:这是什么操作?

    整理 | 王晓曼 出品 | 程序人生 (ID:coder _life) 3月23日,淘宝特价版官博喊话拼多多,表示:@拼多多,他们都把你忘了,只有我还惦记着你. 淘宝特价版在信中介绍到,因自己即将一岁 ...

  2. 进阶的“车厘子自由”,进化的“淘宝特价版”

    文|螳螂财经 作者|陈小江 将农产品商品化,已成为社会共识.但要将共识变成常态,这中间还有不少距离--标准化.规模化.品质化都是要解决的问题. 通过电商推进农产品商品化,是一个重要方向. 只不过,传统 ...

  3. 淘宝特价版月活过亿背后,下沉市场正进入C2M时代

    文/螳螂财经(ID:TanglangFin) 作者/陈小江 在经济学"理性人(合乎理性的人)"假设中,经济活动中的主体所追求的唯一目标就是自身经济利益的最优化,比如消费者追求的满足 ...

  4. 买淘宝特价版,产业升级的证明

    文/易牟 来源/螳螂财经(ID:TanglangFin) 相信大家都已经得到了消息,天猫双11又刷新了记录-- 2020年天猫双11,从11月1日到11月11日的总成交额(GMV)达到4982亿元.按 ...

  5. 2020-08淘宝特价版杀入短视频赛道,步步紧逼拼多多-10

    文 | 程浩然 来源 | 螳螂财经(ID:TanglangFin) 亚马逊河畔的一只蝴蝶,偶尔扇了扇翅膀,两周后,就引起了美国德克萨斯州的一场龙卷风.蝴蝶效应下,市场或平台生态的一个微小变化经过不断放 ...

  6. 互联网日报 | 爱奇艺会员宣布11月13日起涨价;淘宝特价版月活用户破7000万;我国成功发射一箭十三星...

    今日看点 ✦ 华为去年为欧洲贡献164亿欧元GDP,支撑超22万个工作岗位 ✦ 爱奇艺宣布11月13日起调整会员定价:黄金VIP系列最新定价19元至248元 ✦ 阿里巴巴:淘宝特价版月活跃用户在9月超 ...

  7. 继淘宝特价版之后 闲鱼已向微信提交小程序申请

    4月7日消息,TechWeb获悉,继淘宝特价版之后,闲鱼近日也向微信提交了小程序申请.通过后,平台将支持用户在小程序内购买闲置物品.在用户间分享链接,提升购物分享体验. 此前,针对传言的淘宝特级版将推 ...

  8. 淘宝特价版注册“1元更香”商标,又一个新“节日”诞生了

    12月8日消息,淘宝特价版官方对外表示:为充分激发消费人群的性价比需求,淘宝特价版将持续推进"1元包邮"业务的常态化,确定每月最后一周为"1元更香节",超百万件 ...

  9. ​腾讯第一季度员工平均月薪 7.6 万元;“淘宝特价版”App 正式更名为“淘特”;Deno 1.10 正式发布|极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

最新文章

  1. 微服务架构实践之服务注册发现与调用
  2. 徐科:做IC不外乎PPA,但需要成百上千的专家合作 投入数千万
  3. 文化创意企业纷纷跨界融合,软件资产管理奠定安全基础
  4. Algorithms_基础数据结构(02)_线性表之链表_单向链表
  5. Nacos 发布 v0.8.0 Pre-GA版本,安全稳定上生产
  6. springboot mail插件/JavaMailSenderImpl 发邮件。163网易企业邮箱调用的坑。
  7. 【Java】整数存储单元的设计与模拟
  8. Linux CPU占用率监控工具小结
  9. 清北第一套题(zhx)
  10. jmeter 报405错误_jmeter压测报错问题汇总:
  11. 天龙八部3d最新服务器,天龙八部3D妙笔生花新服务器开启公告
  12. 《深入剖析Tomcat》序言
  13. WEP 加密的工作原理和安全缺陷
  14. gromacs 安装_gromacs编译安装教程
  15. Python数据分析(Pandas)
  16. Tengine + BabaSSL ,让国密更易用!
  17. C++ 学习(四)程序流程结构 - 顺序结构、选择结构、循环结构、跳转语句
  18. 定时器软件RH Timer for Mac了解一下
  19. Python中的Scapy初探之六--找出非法的DHCP Server
  20. 卡尔曼滤波和维纳滤波

热门文章

  1. c语言字符串函数strcat strcpy strlen strcmp的用法及原型
  2. 横向数据(按行)的最大值和最小值的SQL语句的编写 !
  3. CSS几种常见的页面布局方式介绍
  4. 网易云音乐导出歌单-速食版
  5. 项目需求讨论-标题栏上的搜索功能
  6. 晋丰佳创:抖音短视频里的版面内容复杂吗?这样设计的原因是什么
  7. 一元线性回归方程C语言实现
  8. C的编译链接及Makefile学习
  9. 图像修复 python_用python进行图像修复与去除水印
  10. 五分钟手操赶走鼠标手