利用 Data URI Scheme进行XSS

这种方法不算新,可是很少人用,也很少人能想得到。

data:类似于javascript.:,在很大程度上,可以完成javascript的工作.

举一个例子:

进行XSS测试时,发现javascript与script等关键字都被过滤了(现在一般有点XSS意识的管理员都懂得过滤这两个关键字)。可用下面的语句:

data:text/html;base64,PHNjcmlwdD5hbGVydCgieHNzIik8L3NjcmlwdD4=

这语句和  javascript.:alert("xss")  或者  <script>alert("xss")</script> 作用是一样的。

data:的语法从上面的语句中也可以看得很清楚了,base64为编码方式,可以任意改,可以UTF-8可以UTF-7,只要后面编码后的内容做相应的更改就可以了。不仅仅是弹窗,如果想src到一个JS脚本,也是完全可以的。

HTML中支持标签属性内嵌入data uri scheme的有:

object  

 iframe.   anchor  img 等。


SuperHei对data:的总结是:

1.可以指定MIME-type如text/html
2.可以指定编码如data:;charset=UTF-8,Hello
3.firefox/ie8/Opera等支持它

posted @ 2014-10-10 15:44  xiao.kkp  阅读(703)  评论(0编辑  收藏  举报