YS web socket存在横向越权漏洞,当前用户可任意查看其他用户的报警信息,可导致敏感信息泄漏【高】

YS web socket存在横向越权漏洞,当前用户可任意查看其他用户的报警信息,可导致敏感信息泄漏【高】

问题描述:

         YS使用定时轮询web socket的方式获取用户设备的报警信息(比如报警图片),在客户端向服务器发送轮询请求期间,若发生设备报警,则将报警信息将实时推送到客户端进行显示,但在此过程中,要查询的设备是通过和用户名绑定的,也就是说绑定指定的用户名,服务器就返回该用户对应的设备的报警信息,而不是当前登录用户的报警信息。

测试步骤:

1、  打开burp拦截代理,并启动http请求拦截功能。

2、  使用正常帐户登录YS(假设当前登录用户名为ouyy),并拦截如下web socket请求,将当前登录账户用户名改成其它某个存在的用户的用户名,如图所示:

技术分享

3、  取消burphttp拦截功能,客户端将定时向服务器发送轮询请求,此时去触发hikwpf这个账户对应的设备进行报警,可以捕获到其报警信息,如图所示:

技术分享

4、  在返回的信息中可以看到报警图片的URL,在浏览器地址栏中输入该URL,就可以看到hikwpf用户的设备的报警图片,如图所示:

技术分享

备注:如果用户开启了安全模式,那么通过该URL访问的图像就是加密的,因此无法查看图像的内容。

问题扩展:

         从目前情况来看,webSocket模块和web后台是完全独立的,即webSocket不记录用户登录后session的状态,也就是说获取web socket session的请求和发送轮询的请求是不需要带上用户登录后的cookie的,因此,验证该问题实际上是不需要一个能合法登录的账户的。

解决建议:

1、  webSocket模块与web后台向结合,发送轮询请求时要携带当前登录用户认证后的cookie,通过cookie来控制报警信息应该发给谁。

 

总结:进入到物联网行业,保护用户隐私是非常重要的,而如何去保护用户隐私需要思考很多,此例子就是一个造成用户隐私泄露的典型例子。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。