最近一两天一直在学习关于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]
-~----------~----~----~----~------~----~------~--~---

回复