成为历史或即将成为历史的-moz-binding(FF)、expression(IE)、@import(IE)、background属性里的javascript伪协议等带来的跨站攻击,有些还在疯狂的跑啊,比如expression,IE8就已经放弃了它。
等到哪天CSS3流行起来了,相应的攻击技巧也会熟练起来,随着CSS3与用户界面的交互性变强,新的攻击向量也就来了。CSS3增加了属性选择符,利用这个的攻击思路可以看上面的PPT。下面是CSS3选择符的列表:
选择符类型 表达式 描述
子串匹配的属性选择符 E[att^=“val”] 匹配具有att属性、且值以val开头的E元素
子串匹配的属性选择符 E[att$=“val”] 匹配具有att属性、且值以val结尾的E元素
子串匹配的属性选择符 E[att*=“val”] 匹配具有att属性、且值中含有val的E元素
结构性伪类 E:root 匹配文档的根元素。在HTML中,根元素永远是HTML
结构性伪类 E:nth-child(n) 匹配父元素中的第n个子元素E
结构性伪类 E:nth-last-child(n) 匹配父元素中的倒数第n个结构子元素E
结构性伪类 E:nth-of-type(n) 匹配同类型中的第n个同级兄弟元素E
结构性伪类 E:nth-last-of-type(n) 匹配同类型中的倒数第n个同级兄弟元素E
结构性伪类 E:last-child 匹配父元素中最后一个E元素
结构性伪类 E:first-of-type 匹配同级兄弟元素中的第一个E元素
结构性伪类 E:only-child 匹配属于父元素中唯一子元素的E
结构性伪类 E:only-of-type 匹配属于同类型中唯一兄弟元素的E
结构性伪类 E:empty 匹配没有任何子元素(包括text节点)的元素E
目标伪类 E:target 匹配相关URL指向的E元素
UI元素状态伪类 E:enabled 匹配所有用户界面(form表单)中处于可用状态的E元素
UI元素状态伪类 E:disabled 匹配所有用户界面(form表单)中处于不可用状态的E元素
UI元素状态伪类 E:checked 匹配所有用户界面(form表单)中处于选中状态的元素E
UI元素状态伪类 E::selection 匹配E元素中被用户选中或处于高亮状态的部分
否定伪类 E:not(s) 匹配所有不匹配简单选择符s的元素E
通用兄弟元素选择器 E ~ F 匹配E元素之后的F元素
在CSS里进行CSRF呢?至少我在使用,可以这样:
发起一个get型的CSRF攻击:)。其实想想CSRF的攻击原理就可以很容易扩充CSRF使用面。比如:在flash9中,一些flash 9的组件,比如UILoader、ScrallPane等都有source属性。我们是可以设置其source为某个具有“CSRF性质”的URL,然后发起get型的CSRF攻击。