神刀安全网

漏洞标题: 利用人人设计缺陷劫持用户私信内容(绕过跨域策略/bypass)

漏洞详情

披露状态:

2016-02-01: 细节已通知厂商并且等待厂商处理中
2016-02-01: 厂商已经确认,细节仅向厂商公开
2016-02-11: 细节向核心白帽子及相关领域专家公开
2016-02-21: 细节向普通白帽子公开
2016-03-02: 细节向实习白帽子公开
2016-03-14: 细节向公众公开

简要描述:

设计的时候别绕了,没发现绕了半天跑回起点了吗,说是bypass,其实利用设计上的漏洞
跨域会报错:Blocked a frame with origin "xxxxx" from accessing

详细说明:

1.这个漏洞,利用的是

code 区域
contentWindow

2.这个函数可以让父窗口获取子窗口的内容,但是前提是同个域,这里举个例子就是,我可以从人人网校园,获取人人网用户个人中心的内容,如图

漏洞标题:  利用人人设计缺陷劫持用户私信内容(绕过跨域策略/bypass)

3.至于XSS,找到一个去年虽然不知道是谁提交但是未修复的XSS

WooYun: 人人网分站再爆xss漏洞一枚

————————————————————————————-

4.获取用户聊天信息的接口

code 区域
http://webpager.renren.com/api/getChatList?lt=15&st=0&type=0&roomId=874460788

5.这个接口的roomId,代表用户聊天的对象,只要把data-id 遍历出来就行了(这里我就把整个body弹出来了,没有去弄数组遍历了)

漏洞标题:  利用人人设计缺陷劫持用户私信内容(绕过跨域策略/bypass)

漏洞标题:  利用人人设计缺陷劫持用户私信内容(绕过跨域策略/bypass)

—————————————————————————————

6 .接下来就是,如何跨域,这个接口

code 区域
http://webpager.renren.com/api/getChatList?lt=15&st=0&type=0&roomId=874460788

属于webpager.renren.com域,如果获取内容会报错

,因为http://st.renren.com/属于renren.com域

漏洞标题:  利用人人设计缺陷劫持用户私信内容(绕过跨域策略/bypass)

漏洞标题:  利用人人设计缺陷劫持用户私信内容(绕过跨域策略/bypass)

———————————————————————————————-

7.但是在用户个人中心,存在一个地址,之后发现,这个地址属于renren.com域名,

code 区域
http://webpager.renren.com/api/ime.jsp

漏洞标题:  利用人人设计缺陷劫持用户私信内容(绕过跨域策略/bypass)

漏洞标题:  利用人人设计缺陷劫持用户私信内容(绕过跨域策略/bypass)

————————————————————————————————-

8.觉得上面乱的话,我整理一下逻辑上面就是

①.

code 区域
http://webpager.renren.com/api/ime.jsp

属于renren.com域

②.

code 区域
http://webpager.renren.com/api/getChatList?lt=15&st=0&type=0&roomId=874460788

属于webpager.renren.com域

——————————————————————————————-

9.这个时候设计上的缺陷也就出来了

code 区域
http://st.renren.com/

(这个属于renren.com域,存在XSS漏洞)

               ↓

code 区域
http://www.renren.com/

(这个属于renren.com域)

               ↓

③.

code 区域
http://webpager.renren.com/api/ime.jsp

属于renren.com域

               ↓

④.

code 区域
http://webpager.renren.com/api/getChatList?lt=15&st=0&type=0&roomId=874460788

属于webpager.renren.com域

————————————————————————————–

10.因为document.domain 是可以设置自己本身域,还有基础域,也就是说

①.

code 区域
http://webpager.renren.com/api/getChatList?lt=15&st=0&type=0&roomId=874460788

0

code 区域
http://webpager.renren.com/api/getChatList?lt=15&st=0&type=0&roomId=874460788

1

可以相互通信

②.

code 区域
http://webpager.renren.com/api/getChatList?lt=15&st=0&type=0&roomId=874460788

2

code 区域
http://webpager.renren.com/api/getChatList?lt=15&st=0&type=0&roomId=874460788

3

可以相互通信

③.又因为

code 区域
http://webpager.renren.com/api/getChatList?lt=15&st=0&type=0&roomId=874460788

4

code 区域
http://webpager.renren.com/api/getChatList?lt=15&st=0&type=0&roomId=874460788

5

可以相互通信

④.换句话就是说,

code 区域
http://webpager.renren.com/api/getChatList?lt=15&st=0&type=0&roomId=874460788

6

code 区域
http://webpager.renren.com/api/getChatList?lt=15&st=0&type=0&roomId=874460788

7

可以相互通信

———————————————————————————————

11.自己的总结就是,

code 区域
http://webpager.renren.com/api/getChatList?lt=15&st=0&type=0&roomId=874460788

8

借助,

code 区域
http://webpager.renren.com/api/getChatList?lt=15&st=0&type=0&roomId=874460788

9

,再借助

code 区域
http://webpager.renren.com/api/getChatList?lt=15&st=0&type=0&roomId=874460788

0

code 区域
http://webpager.renren.com/api/getChatList?lt=15&st=0&type=0&roomId=874460788

1

进行通信

12.所以,这种设计,

code 区域
http://webpager.renren.com/api/getChatList?lt=15&st=0&type=0&roomId=874460788

2

可以被绕过和

code 区域
http://webpager.renren.com/api/getChatList?lt=15&st=0&type=0&roomId=874460788

3

通信

———————————————————————————————-

13.下面是测试截图,直接获取webpager.renren.com域的聊天内容了

①.

漏洞标题:  利用人人设计缺陷劫持用户私信内容(绕过跨域策略/bypass)

漏洞证明:

1.漏洞证明你看上面

2.用偶像的话说,这个时候结果已经不重要了

修复方案:

1.域之间最好相互隔开,不然坑的是自己

2.我小白,你们比较厉害

版权声明:转载请注明来源 q601333824@乌云

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » 漏洞标题: 利用人人设计缺陷劫持用户私信内容(绕过跨域策略/bypass)

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
分享按钮