這種方法不算新,但是不多人用,也不多人能想獲得。
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等支持它測試