这种方法不算新,可是很少人用,也很少人能想得到。
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等支持它
时间: 2024-10-09 23:57:48