最近一两天一直在学习关于csrf及csrf worm的资料,明白了不少关于csrf的东西和其它相关内容。
也看了译言和百度那两只worm的分析文章,就是对其中跨域获取数据这点不太明白。 文章链接http://blog.csdn.net/linkyou/archive/2009/02/09/3870346.aspx 说是共有三种方法,跨域获取数据:1、代理方式;2、flash AS 方式(本人不会,略过);3、json hijacking方式。 译言的worm是使用的代理的方式,是通过referer值来判断来源地方,并从中提取的所谓的唯一值,就是ID之类。 就是使用了服务端代理来完全跨域获取数据的操作(Microsoft.XMLHTTP控件的使用)。 引用一篇资料的一段话,如下: 使用服务端代理技术优点是显而易见的,比如蠕虫代码、逻辑可以被很好的隐藏。缺点是在服务端发起的GET或POST请求无法跨域带上被攻击站点的本地Cookie或内存Cookie。这样CSRF蠕虫就只能通过referer里的唯一值来进行下一步攻击,而不能通过获取referer地址对应的页面内容里的由Cookie决定的唯一值,比如这样的地址 http://www.yeeyan.com/space/showme ,对每个登录的译言用户而言,链接地址一样,但是页面内容不一样,里面不一样的内容由用户的身份标志决定。使用服务端代理技术无法通过CSRF技术获取 http://www.yeeyan.com/space/showme链接页面里不一样的用户唯一标志。 在服务端发起的GET或POST请求无法跨域带上被攻击站点的本地Cookie或内存Cookie,是什么意思?是与cookie的同源策略有关吗? 不能通过获取referer地址对应的页面内容里的由Cookie决定的唯一值,我看了译言worm样本半天,Microsoft.XMLHTTP控件不也是通过referer来获取页面中的内容吗?最终获得相关页面中好友的信息吗? 对于worm攻击流程的个人理解,不知对否? A web:被攻击网站 B web:worm所在网站 跨域提交数据 A web中某留言板链接或其它---->有用户点击该链接---->B web-------------->A web 给好友继续发送,worm的链接,达传播目的 | <--------------- | | 跨域获取数据 | | | |<------------------------------------------| -- 世之奇伟 瑰怪 非常之观 常在于险远 而人之所罕至焉 故非有志者不能至也 msn:[email protected] <msn%[email protected]> mail:[email protected] <mail%[email protected]> --~--~---------~--~----~------------~-------~--~----~ 要向邮件组发送邮件,请发到 [email protected] 要退订此邮件,请发邮件至 [email protected] -~----------~----~----~----~------~----~------~--~---

