Level-1
<script>alert()</script>
- 基礎反射型 無任何過濾
Level-2
"> <script>alert()</script> <"
閉合屬性:">用來閉合當前標簽的value屬性
注入新標簽:閉合屬性后,插入獨立的<script>標簽,執行新標簽內的代碼,繞過了“”入被限制在屬性內無法執行腳本的”限制
Level-3
' onfocus=javascript:alert() '
- 事件型
- 閉合屬性:'閉合value屬性的單引號
- 事件觸發:onfous是html事件屬性,執行結果是偽協議,當輸入框被點擊時,執行alter(),繞過了“標簽過濾”,利用合法事件屬性執行
Level-4
" onclick="alert('1')
- 事件型
- 閉合屬性:"閉合value屬性的雙引號
- 點擊觸發:onclick是點擊事件,點擊輸入框所在的元素時,執行
Level-5
"><a href="javascript:alert(/xss/)">click me!</a><"
- 閉合標簽:">閉合當前標簽
- 注入新標簽:插入<a>標簽,執行結果是偽協議,點擊click 么鏈接時,alter(),繞過<script>標簽過濾
Level-6
"><SCript>alert(/xss/)</SCript>"<
- 大小寫混淆:SCript混合大小寫,繞過“小寫<script>過濾”規則
Level-7
" oonnmouseover="alert(/xss/)
- 雙寫繞過:oonnmouseover中,on被過濾后會還原為onmouseover
Level-8
javascript:alert(/xss/)
- 實體編碼:&#*63是html實體編碼,對應字符c?
- 拼接后還原為javascript:alter(/xss/) 當做為href屬性值時,解析偽協議并執行alter()
- 繞過“直接檢測javascript:關鍵字”的過濾規則