漏洞描述
跨站腳本攻擊(Cross-site scripting,簡稱XSS攻擊),通常發生在客戶端,可被用於進行隱私竊取、釣魚欺騙、密碼偷取、惡意代碼傳播等攻擊行為。XSS攻擊使用到的技術主要為HTML和Javascript腳本,也包括VBScript和ActionScript腳本等。
惡意攻擊者將對客戶端有危害的代碼放到服務器上作為一個網頁內容,用戶不經意打開此網頁時,這些惡意代碼會注入到用戶的瀏覽器中並執行,從而使用戶受到攻擊。一般而言,利用跨站腳本攻擊,攻擊者可竊取會話cookie,從而獲得用戶的隱私信息,甚至包括密碼等敏感信息。
漏洞危害
XSS攻擊對Web服務器本身雖無直接危害,但是它借助網站進行傳播,對網站用戶進行攻擊,竊取網站用戶賬號信息等,從而也會對網站產生較嚴重的危害。XSS攻擊可導致以下危害:
- 釣魚欺騙:最典型的就是利用目標網站的反射型跨站腳本漏洞將目標網站重定向到釣魚網站,或者通過注入釣魚JavaScript腳本以監控目標網站的表單輸入,甚至攻擊者基於DHTML技術發起更高級的釣魚攻擊。
- 網站掛馬:跨站時,攻擊者利用Iframe標簽嵌入隱藏的惡意網站,將被攻擊者定向到惡意網站上、或彈出惡意網站窗口等方式,進行掛馬攻擊。
- 身份盜用:Cookie是用戶對於特定網站的身份驗證標志,XSS攻擊可以盜取用戶的cookie,從而利用該cookie盜取用戶對該網站的操作權限。如果一個網站管理員用戶的cookie被竊取,將會對網站引發巨大的危害。
- 盜取網站用戶信息:當竊取到用戶cookie從而獲取到用戶身份時,攻擊者可以盜取到用戶對網站的操作權限,從而查看用戶隱私信息。
- 垃圾信息發送:在社交網站社區中,利用XSS漏洞借用被攻擊者的身份發送大量的垃圾信息給特定的目標群。
- 劫持用戶Web行為:一些高級的XSS攻擊甚至可以劫持用戶的Web行為,從而監視用戶的瀏覽歷史、發送與接收的數據等等。
- XSS蠕蟲:借助XSS蠕蟲病毒還可以用來打廣告、刷流量、掛馬、惡作劇、破壞網上數據、實施DDoS攻擊等。
修復方案
方案一
目前,雲盾的“DDoS高防IP服務”以及“Web應用防火牆”均提供對Web應用攻擊的安全防護能力。選擇以上服務開通Web應用攻擊防護,可以保障您的服務器安全。方案二
將用戶所提供的內容輸入輸出進行過濾。可以運用下面這些函數對出現XSS漏洞的參數進行過濾: - PHP的htmlentities()或是htmlspecialchars()
- Python的cgi.escape()
- ASP的Server.HTMLEncode()
- ASP.NET的Server.HtmlEncode()或功能更強的Microsoft Anti-Cross Site Scripting Library
- Java的xssprotect(Open Source Library)
- Node.js的node-validator
方案三
使用開源的漏洞修復插件。(需要系統管理員懂得編程並且能夠修改服務器代碼。)