在我的Rails应用程序中,我有2个子域名,
一个: members.myapp.com 这是所有成员之间共享的区域(他们可以登录和管理他们的帐户)
两个:每个成员在子域上都有自己的网站,如下所示: member1.myapp.com , member2.myapp.com , member3.myapp。 com 等...
让我们想象 user1.myapp.com 在其网站中运行恶意js代码, members.myapp.com 可以通过XSS或其他方式受到影响攻击?
答案 0 :(得分:3)
他们可以设置members.myapp.com
可以读取的cookie - 所以如果他们是members.myapp.com
处理漏洞的任何coookie,那么他们可能会利用这些。 cookie中毒的一个例子可能是session fixation。
除非两个域都选择加入,否则XSS是不可能的。即它们都必须包含以下代码。
document.domain = 'myapp.com';
除非members.myapp.com
执行此操作,否则不会在子域之间共享Origin。
如上所述,一种类型是Session Fixation。
现在,请说攻击者访问members.myapp.com
并获得一个随机会话cookie:set-cookie: session_id=123456
。
然后,攻击者会向管理员发送一封电子邮件,说明他的域user1.myapp.com
存在问题。
攻击者在user1.myapp.com
上托管了一些JavaScript代码:
document.cookie = "session_id=123456;domain=myapp.com";
受害者(myapp.com
的管理员)进入攻击者的页面并收到cookie。
管理员稍后转到members.myapp.com
并将日志转到其管理员级帐户。但是,由于攻击者已将攻击者的会话ID(123456
)提供给可由members.myapp.com
读取的cookie(因为它设置为myapp.com
级别),攻击者现在已经记录在管理员。即攻击者已设法让管理员共享其会话,因此当管理员登录时,共享其会话的攻击者也会登录。
这只是Cookie处理漏洞的一个示例。在这种情况下,系统应在登录后发出新的会话cookie,以防止会话固定攻击。