这种方法不算新,但是不多人用,也不多人能想获得。
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脚本,也是彻底能够的。
javascript
HTML中支持标签属性内嵌入data uri scheme的有:html
object java
iframe. anchor img 等。xss
SuperHei对data:的总结是:
1.能够指定MIME-type如text/html
2.能够指定编码如data:;charset=UTF-8,Hello
3.firefox/ie8/Opera等支持它测试