程式碼安全測試第十五期:跨站指令碼漏洞

zktq2021發表於2021-06-08

一、什麼是跨站指令碼漏洞?

從使用者控制的輸入到輸出之前,軟體沒有對其進行過濾或沒有正確過濾,這些輸出用作向其他使用者提供服務的網頁。

二、跨站指令碼(XSS)漏洞通常在哪些情況下發生?

1、不可信資料進入網路應用程式,通常透過網頁請求;

2、網路應用程式動態地生成一個帶有不可信資料的網頁;

3、在網頁生成期間,應用程式不會阻止Web瀏覽器可執行的內容資料,例如JavaScript、HTML標籤、HTML屬性、滑鼠事件、Flash、ActiveX等;

4、受害者透過瀏覽器訪問的網頁包含帶有不可信資料的惡意指令碼;

5、由於指令碼來自於透過web伺服器傳送的網頁,因此受害者的web瀏覽器會在web伺服器域的上下文中執行惡意指令碼;

6、違反web瀏覽器的同源策略,同源策略是一個域中的指令碼不能訪問或執行其他域中的資源或程式碼。

三、跨站指令碼漏洞的構成條件有哪些?

滿足一以下條件,就構成了一個該型別的安全漏洞:

1、資料從不可靠來源(包含但不侷限於不可靠使用者的輸入資訊或是不可靠使用者可能更改的檔案)進入應用程式;

2、該資料未經過濾或不正確地過濾特殊字元後,直接使用。

四、跨站指令碼漏洞會造成哪些後果?

關鍵詞:執行未經授權的程式碼或命令;旁路保護機制;讀取應用程式資料

1、盜取各類使用者賬號。如機器登入賬號、使用者網銀賬號、各類管理員賬號;

2、控制企業資料。包括讀取、篡改、新增、刪除企業敏感資料的能力;

3、盜竊企業重要的具有商業價值的資料;

4、非法轉賬;

5、強制傳送電子郵件;

6、網站掛馬;

7、控制受害者機器向其它網站發起攻擊。

五、跨站指令碼漏洞的防範和修補方法有哪些?

1、輸入驗證:對輸入的資訊進行驗證。仔細檢查每個輸入引數,以確定允許的特定字元和格式。

2、輸出編碼:使用並指定下游元件可處理得輸出編碼格式。常用編碼包括ISO-8859-1,UTF-7和UTF-8。

六、跨站指令碼漏洞樣例:

用悟空 靜態程式碼檢測工具分析 上述程式程式碼,則可以發現程式碼中存在著“跨站指令碼” 導致的 程式碼缺陷 ,如下圖:

跨站指令碼在CWE中被編號為CWE-79: Improper Neutralization of Input DuringWeb Page Generation ('Cross-site Scripting')


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2775951/,如需轉載,請註明出處,否則將追究法律責任。

相關文章