悟空云課堂丨代碼安全第十五期:跨站腳本漏洞

中科天齊傾情打造《悟空云課堂》旨在科普軟件安全相關(guān)知識,助力企業(yè)有效防范軟件安全漏洞,提升網(wǎng)絡安全防護能力。本期主題為跨站腳本漏洞的相關(guān)介紹。
一、什么是跨站腳本漏洞?
從用戶控制的輸入到輸出之前,軟件沒有對其進行過濾或沒有正確過濾,這些輸出用作向其他用戶提供服務的網(wǎng)頁。
二、跨站腳本(XSS)漏洞通常在哪些情況下發(fā)生?
1、不可信數(shù)據(jù)進入網(wǎng)絡應用程序,通常通過網(wǎng)頁請求;
2、網(wǎng)絡應用程序動態(tài)地生成一個帶有不可信數(shù)據(jù)的網(wǎng)頁;
3、在網(wǎng)頁生成期間,應用程序不會阻止Web瀏覽器可執(zhí)行的內(nèi)容數(shù)據(jù),例如JavaScript、HTML標簽、HTML屬性、鼠標事件、Flash、ActiveX等;
4、受害者通過瀏覽器訪問的網(wǎng)頁包含帶有不可信數(shù)據(jù)的惡意腳本;
5、由于腳本來自于通過web服務器發(fā)送的網(wǎng)頁,因此受害者的web瀏覽器會在web服務器域的上下文中執(zhí)行惡意腳本;
6、違反web瀏覽器的同源策略,同源策略是一個域中的腳本不能訪問或運行其他域中的資源或代碼。
三、跨站腳本漏洞的構(gòu)成條件有哪些?
滿足一以下條件,就構(gòu)成了一個該類型的安全漏洞:
1、數(shù)據(jù)從不可靠來源(包含但不局限于不可靠用戶的輸入信息或是不可靠用戶可能更改的文件)進入應用程序;
2、該數(shù)據(jù)未經(jīng)過濾或不正確地過濾特殊字符后,直接使用。
四、跨站腳本漏洞會造成哪些后果?
關(guān)鍵詞:執(zhí)行未經(jīng)授權(quán)的代碼或命令;旁路保護機制;讀取應用程序數(shù)據(jù)
1、盜取各類用戶賬號。如機器登錄賬號、用戶網(wǎng)銀賬號、各類管理員賬號;
2、控制企業(yè)數(shù)據(jù)。包括讀取、篡改、添加、刪除企業(yè)敏感數(shù)據(jù)的能力;
3、盜竊企業(yè)重要的具有商業(yè)價值的資料;
4、非法轉(zhuǎn)賬;
5、強制發(fā)送電子郵件;
6、網(wǎng)站掛馬;
7、控制受害者機器向其它網(wǎng)站發(fā)起攻擊。
五、跨站腳本漏洞的防范和修補方法有哪些?
1、輸入驗證:對輸入的信息進行驗證。仔細檢查每個輸入?yún)?shù),以確定允許的特定字符和格式。
2、輸出編碼:使用并指定下游組件可處理得輸出編碼格式。常用編碼包括ISO-8859-1,UTF-7和UTF-8。
六、跨站腳本漏洞樣例:

用Wukong軟件源代碼分析工具檢測上述程序代碼,則可以發(fā)現(xiàn)代碼中存在著“跨站腳本” 導致的代碼缺陷,如下圖:

跨站腳本在CWE中被編號為CWE-79: Improper Neutralization of Input DuringWeb Page Generation ('Cross-site Scripting')
原文鏈接:https://www.woocoom.com/b021.html?id=807d6f6c7b2849ef99afe77dba2ae604
