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

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

缺陷编号:wooyun-2015-0140449

漏洞标题:智能硬件安全之九阳豆浆机设备认证与控制设计缺陷(控制任意女神豆浆机)

相关厂商:joyoung.com

漏洞作者: 只抽红梅

提交时间:2015-09-11 14:04

修复时间:2015-12-10 16:12

公开时间:2015-12-10 16:12

漏洞类型:权限控制绕过

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-09-11: 细节已通知厂商并且等待厂商处理中
2015-09-11: 厂商已经确认,细节仅向厂商公开
2015-09-14: 细节向第三方安全合作伙伴开放
2015-11-05: 细节向核心白帽子及相关领域专家公开
2015-11-15: 细节向普通白帽子公开
2015-11-25: 细节向实习白帽子公开
2015-12-10: 细节向公众公开

简要描述:

女神竟然喜欢喝豆浆,喝豆浆,喝豆浆。我要悄悄帮她做。

详细说明:

按照以往的路数,我把九阳豆浆机组成下图所示的网络环境,用来分析九阳豆浆机的安全性。

lan.png


分析思路是:
1. 通过 burp suite 抓取 app 和九阳云端通讯的数据,用于检测接口是否存在漏洞;
2. 通过 openwrt 上 tcpdump 抓取豆浆机和云端通讯数据,用于检测豆浆机和云端是否存在漏洞;
经过枯燥而又漫长的过程之后,我们有了些许收获。
第一部分先让我们来说说豆浆机的事情,下面是部分抓包截图:

p1.png


p2.png


p3.png


通过分析数据包我们能够知道九阳云端一共有两个对外的 IP

42.121.254.96(api.joyoung.com)
121.41.20.214


其中 42.121.254.96 开放 8089 端口,在 http 上搭建了WebLogic
而 121.41.20.214 开放 9000 端口和设备通信,9001 端口与手机 app 通信。后端为运行在 Play!framework 的 java程序。
用户通过app绑定设备以及之后开启app时,会通过api.joyoung.com:8089提供的接口依次获取以下信息。
mobile_id –> session_key -> dev_id
在得到设备dev_id号后,app 会发送指令到九阳控制服务器 9001 端口,其中包含要控制设备的dev_id 号。同时九阳控制服务器会通过9000端口和各个智能设备之间保持长连接,智能设备会每分钟发送心跳包保持在线状态。当服务器从9001端口收到控制命令后,会转发命令到对应控制设备所保持的长连接中,这样实现了跨网络的控制。
在观察 9001 端口的通讯数据后,经过简单的测试,其中和设备相关的数据为一个16字节长度的did。查看设备是否在线的包结构大致如下:

"bb00000100"+did+ "0037010002eea0003000000000000000000000000000000000000000000000000000000000000


在测试中发现,只要获取到 dev_id 值,无需用户正常的认证过程,仍然可以通过 9001 端口直接控制智能设备。8089 端口的认证只是 dev_id 信息获取过程,而没有将验证体现后续的控制过程中。在已知 dev_id 的情况,不管用户是否更改 app 上的用户密码,只要设备在线,都可以直接通过和九阳控制服务器9001端口通讯来控制设备。
那么问题来了,我们怎么获取设备的 dev_id,方法有多种,弱水三千我只取一瓢饮 -- 云端。
这就到了第二部分,说说云端,经过前期工作后,我们收集到云端信息如下:

42.121.254.96(api.joyoung.com)
42.120.19.38(apitest.joyoung.com)
121.41.20.214


对其分析后能够得到云端的控制权限,过程略,只给结果
42.120.19.38(apitest.joyoung.com) 存在如下漏洞,可以获取这台服务器的控制权限
1. https://apitest.joyoung.com/jypms/www/user-login-L2p5cG1zL3d3dy8=.html 运行禅道项目管理软件,存在高危漏洞可以直接获取服务器权限,漏洞详情请参考: WooYun: 禅道项目管理软件多个漏洞
2. https://apitest.joyoung.com/phpmyadmin/ 弱口令,能够获取数据库数据,并且可以读取服务器文件等;
经过观察,这台服务器是测试服务器,但是服务器上代码和 42.121.254.96(api.joyoung.com) 大致相同,分析了下 api 接口相关代码,发现上传地方存在漏洞,通过下面数据包可以上传任意文件到 web 目录下

POST /ia/appapi/upload HTTP/1.1
Host: api.joyoung.com:8089
Content-Type: multipart/form-data; charset=utf-8; boundary=0xKhTmLbOuNdArY
Accept: */*
Connection: keep-alive
Cookie: SERVERID=e7a1873b592e0bf26933f9d533fb8b95|1441529356|1441529354
Accept-Language: zh-Hans, en-us
Content-Length: 439
Accept-Encoding: deflate
User-Agent: jy_ai/1.1.2 CFNetwork/711.5.6 Darwin/14.0.0
--0xKhTmLbOuNdArY
Content-Disposition: form-data; name="param"
{"sessionkey":"*************","api_version":"1","op_action":"uploadBbsfile","u_type":"NFSVISYDLIBB"}
--0xKhTmLbOuNdArY
Content-Disposition: form-data; name="a.jsp"; filename="file"
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary
<%= new String("Hello!") %>
--0xKhTmLbOuNdArY--


ps:这里走了不少弯路,但是只提一句就是,上传参数中原本有 u_msg 是校验字段,如果这个字段为空就会跳过整个校验过程
所以通过构造上面的数据包可以获取 42.121.254.96(api.joyoung.com) 服务器的权限(webshell)

http://api.joyoung.com:8089/ia/appfiles/bbs/2015/09/09/531166ef4b0c46a6ab901d2cc8426c24.jsp


webshell.png


进而我们可以获取数据库中所有设备的 dev_id,如果设备在线后,就可以发送控制命令了。写python脚本来验证一下:

py.png


py1.png


然后呢?
然后我去给女神做爱心豆浆去。

漏洞证明:

漏洞证明

py.png


py1.png

修复方案:

先总结下问题:
1. 九阳豆浆机在设计控制的地方存在缺陷,只要知道 dev_id 就能够对其进行控制;
2. 云端的安全问题会造成能够控制所有设备
再说修复建议:
1. 在对设备进行控制时,除了 dev_id 外,还需要验证用户身份;
2. 云端的问题很多,需要全部修复;

版权声明:转载请注明来源 只抽红梅@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2015-09-11 16:10

厂商回复:

感谢白帽子发现我们系统设计的不足,将尽快安排整改。

最新状态:

暂无


漏洞评价:

评论

  1. 2015-09-11 14:08 | 疯狗 认证白帽子 ( 实习白帽子 | Rank:44 漏洞数:2 | 阅尽天下漏洞,心中自然无码。)

    能让全世界的九阳豆浆机噪起来不

  2. 2015-09-11 14:27 | 心云 ( 普通白帽子 | Rank:143 漏洞数:47 | 闲的时候来一发)

    666

  3. 2015-09-11 14:36 | DNS ( 普通白帽子 | Rank:543 漏洞数:61 | 没有我,你们就去背IP吧)

    女神竟然喜欢喝豆浆,喝豆浆,喝豆浆。。。。。。。。。。。。。。。。。豆浆???

  4. 2015-09-11 14:52 | 我是壮丁 认证白帽子 ( 路人 | Rank:10 漏洞数:1 | 专业打酱油)

    坐等豆浆

  5. 2015-09-11 15:00 | xsser 认证白帽子 ( 普通白帽子 | Rank:267 漏洞数:20 | 当我又回首一切,这个世界会好吗?)

    坐等女神精华

  6. 2015-09-11 15:36 | PiaCa ( 普通白帽子 | Rank:137 漏洞数:11 | 简单点!啪......嚓~~)

    我说我家豆浆机最近是怎么了,原来是你干的。

  7. 2015-09-11 15:51 | 疯狗 认证白帽子 ( 实习白帽子 | Rank:44 漏洞数:2 | 阅尽天下漏洞,心中自然无码。)

    @PiaCa 你家豆浆机有了?

  8. 2015-09-11 15:52 | M4sk ( 普通白帽子 | Rank:1218 漏洞数:322 | 国内信息安全任重而道远,还需要厂商和白帽...)

    我说我家豆浆机最近是怎么了,原来是你干的。

  9. 2015-09-11 15:53 | boooooom 认证白帽子 ( 普通白帽子 | Rank:467 漏洞数:50 | 我有一个好想法!)

    你们这些黑客,豆浆都不能开心的喝了?

  10. 2015-09-11 15:56 | hotdog ( 路人 | Rank:6 漏洞数:4 | 不好不坏,亦正亦邪!)

    你们这些IT骚包,都是坏淫!

  11. 2015-09-11 16:39 | 只抽红梅 ( 普通白帽子 | Rank:209 漏洞数:18 | 红梅花儿开,我从帝都来!)

    厂商不厚道,这么多漏洞才给 15 分

  12. 2015-09-11 16:39 | 浩天 认证白帽子 ( 普通白帽子 | Rank:915 漏洞数:79 | 哈!躁起来!)

    我喜欢

  13. 2015-09-11 16:40 | PiaCa ( 普通白帽子 | Rank:137 漏洞数:11 | 简单点!啪......嚓~~)

    @疯狗 你怎么知道的?

  14. 2015-09-11 17:05 | 继续沉默 ( 实习白帽子 | Rank:62 漏洞数:9 | 好好学习,天天向上)

    怪不得前两天女神叫我去她家,说豆浆机坏了, 然后你懂的

  15. 2015-09-14 17:23 | ( 路人 | Rank:17 漏洞数:4 | -->‮)

    原来豆浆机里面不只有豆浆

  16. 2015-09-14 17:51 | 二愣子 ( 普通白帽子 | Rank:177 漏洞数:38 | 毛毛你是个好姑娘)

    豆浆机为何频频半夜叫唤???

  17. 2015-09-14 21:01 | Mr.Black ( 路人 | 还没有发布任何漏洞 | 爱好WEB安全 爱好个人信息安全)

    不是美女黑客提出的话题吗

  18. 2015-09-15 08:45 | Nelion ( 路人 | Rank:27 漏洞数:23 | 老实,腼腆,潜力股;不谈情,不说爱,只泡...)

    豆浆。呵呵、呵呵。。。。

  19. 2015-09-15 17:41 | 3King ( 普通白帽子 | Rank:1139 漏洞数:94 | 【study at HNUST】非常感谢大家的关注~ 大...)

    我说我家豆浆机最近是怎么了,原来是你干的。

  20. 2015-09-15 18:16 | f4ckbaidu ( 普通白帽子 | Rank:189 漏洞数:26 | 开发真是日了狗了)

    女神竟然喜欢喝豆浆,喝豆浆,喝豆浆。我要悄悄帮她攒

  21. 2015-09-15 22:11 | 一只猿 ( 普通白帽子 | Rank:509 漏洞数:92 | 硬件与无线通信研究方向)

    不是每一滴豆浆都是真豆浆

  22. 2015-09-15 23:16 | 有妹子送上 ( 实习白帽子 | Rank:89 漏洞数:28 | 杭州最帅的男人)

    洞主,有妹子送上

  23. 2015-09-16 06:24 | 行侠 ( 实习白帽子 | Rank:48 漏洞数:16 )

    豆浆机都被你玩坏了。

  24. 2015-09-16 14:57 | 無名老人 ( 路人 | Rank:15 漏洞数:3 | 干过开发,日过渗透,江湖人称: 少女杀手)

    看来getshell 了

  25. 2015-09-16 20:23 | Elliott ( 实习白帽子 | Rank:44 漏洞数:10 | 绝逼不当程序员)

    跟豆浆机说话的人

  26. 2015-09-16 23:45 | 小杰哥 ( 普通白帽子 | Rank:179 漏洞数:29 | 逆水行舟,不进则退。)

    你家女神在喝我豆浆的时候,你却在日豆浆机。

  27. 2015-09-17 10:11 | whitemonty ( 路人 | Rank:7 漏洞数:4 | Secur1ty just lik3 a girl. B0th of th3m ...)

    @小杰哥 你这样对洞主,就不会他R你?

  28. 2015-09-17 21:48 | SunnyDoll ( 实习白帽子 | Rank:41 漏洞数:14 | 职业搬砖工)

    女神喜欢喝豆浆? 我悄悄的为女神赞了十八年

  29. 2015-09-18 10:50 | ㄚ冷的祝福 ( 实习白帽子 | Rank:49 漏洞数:9 | 路过打酱油)

    夜夜为你磨豆浆

  30. 2015-09-18 11:19 | wefgod ( 核心白帽子 | Rank:1817 漏洞数:180 | 力不从心)

    可以远程在女神的豆浆里面混入其他颜色类似的东西?

  31. 2015-09-18 21:59 | 大漠長河 ( 实习白帽子 | Rank:66 漏洞数:10 | ̷̸̨̀͒̏̃ͦ̈́̾( 天龙源景区枫叶正...)

    还有大叔的豆浆机,,,让我想起一个笑话 不说了.我豆浆机居然有漏洞,这家用电器是缓不过来了

  32. 2015-12-10 16:16 | 幻老头儿 ( 普通白帽子 | Rank:190 漏洞数:39 | 新手上路。)

    你在家里,控制着车,控制着豆浆机,女神坐在车子副驾驶位上喝着豆浆。驾驶座上放着一台豆浆机。