这种方法不算新,可是很少人用,也很少人能想得到。
http://hi.baidu.com/cncxz/blog/item/8d6aaa08d1d96fbc2fddd4ee.html
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脚本,也是完全可以的。
SuperHei对data:的总结是:
1.可以指定MIME-type如text/html
2.可以指定编码如data:;charset=UTF-8,Hello
3.firefox/ie8/Opera等支持它
有兴趣的同学可以参看FIREFOX官方:
http://www-archive.mozilla.org/quality/networking/testing/datatests.html
data:是一个好东西啊~OVER!