cogniexploitWide

0x01 概述

Cognitoys Dino是一种连接网络的IoT儿童玩具。它与IBM Watson集成,并与孩子进行交互式的对话(玩耍)。它的供应商称Cognitoys Dino十分安全。

但是,这并没有说它是完全安全的。这里我发现了它IoT的一个常见问题 – 当首次设置它时,数据没有加密。我们认为这不应该存在,因为它在Web界面中有一些相当重要的输入验证问题。

0x02 Getting started

首先,它的ios应用程序在通信方面看起来做得很好,它检查了SSL证书是否受信任,并使用oauth2登录过程,然后使用承载令牌。

然而,通过玩具上的Wi-Fi可以获得的本地Web界面,但是这个Web页面可能存在一些问题 – CSRF和持久的XSS。这是进入的结果:snip-300x25

作为SSIDcogniexploit1

这是我利用本地Web界面的CSRF请求,还有使用XSS的代码:cogniexploit2

如果你现在直接访问Web界面,界面是这样的:

cogniexploit4

Web服务器记录以下信息:

cogniexploit5

可以在这里查看我们提供的索引文件:

cogniexploit6

这可能更改成任何我们想改的代码。也就是说如果我们可以说服用户跟随玩具上的嵌入式Web服务器的链接,我们可以持续地对其进行XSS

幸运的是,用户PSK不会显示在Web界面中,所以我们可以运行的JavaScript无法访问。

但是,我们可以很容易地看到设置的SSID,或者设置一个高优先级的SSID。我们还可以在Web服务器日志中查看受影响设备的外部IP地址。

0x03 修复建议

你可能已经发现嵌入式Web服务器是通过HTTP提供的。逻辑上的解决方案是实施SSL来防止MITM,但这带来了一个问题:

如何实现SSL没有一个decent entropy源的物联网设备?

理论上,在具有RNG的情况下,TI NWP可以独占访问它。我们希望能更好的使用物联网,所以供应商应该多测试准备上线的物联网设备,才让它上线。

需要修复的是:

注:厂商已经把漏洞修复了,此文仅作参考,请自行承担全部责任。

 

*参考:Jamie Riden

源链接

Hacking more

...