淺析XSS與XSSI異同

Michael Cobb:自上世紀(jì)90年代,攻擊者就已經(jīng)開始利用XSS漏洞,并且,最主要的網(wǎng)站(例如谷歌、雅虎和Facebook)都在一定程度上受到過XSS漏洞的影響。與大多數(shù)應(yīng)用層攻擊(例如SQL注入),基于XSS的攻擊會攻擊應(yīng)用的用戶,而不是應(yīng)用或服務(wù)器。這些攻擊的工作原理是注入代碼(通常例如JavaScript客戶端腳本)到Web應(yīng)用的輸出。大部分網(wǎng)站有很多注入點(diǎn),包括搜索域、cookies和表格。雖然這些惡意腳本不能直接感染服務(wù)器端信息,它們?nèi)匀豢梢云茐木W(wǎng)站的安全性。通過使用Document Object Model操作來更改表格值,改變網(wǎng)頁的外觀或切換表格操作以張貼提交的數(shù)據(jù)到攻擊者的網(wǎng)站,攻擊者可以竊取數(shù)據(jù)、控制用戶的會話、運(yùn)行惡意代碼或用作網(wǎng)絡(luò)釣魚欺詐的一部分。
XSSI是XSS的一種形式,它利用了這樣一個事實(shí),即瀏覽器不會阻止網(wǎng)頁加載圖像和文字等資源,這些資源通常托管在其他域和服務(wù)器。例如,腳本可能提供攻擊者需要的功能,幫助創(chuàng)建特定的頁面—很多網(wǎng)站包含托管在https://developers.google.com/speed/libraries/#jquery的JavaScript庫jQuery。然而,這種包含可能被利用來從一個域名讀取用戶數(shù)據(jù)—當(dāng)用戶正在訪問另一個域名時。例如,如果ABC銀行有一個腳本用于讀取用戶的私人賬戶信息,攻擊者可以在其自己的惡意網(wǎng)站包含這個腳本,當(dāng)ABC銀行的客戶訪問攻擊者的網(wǎng)站時,攻擊者就可以從ABC銀行的服務(wù)器提取用戶信息。
開發(fā)者可以部署多種措施來抵御XSSI攻擊。其中一種方法是向用戶提供獨(dú)特的不可預(yù)測的授權(quán)令牌,在服務(wù)器響應(yīng)任何請求之前,需要發(fā)送回該令牌作為額外的HTTP參數(shù)。腳本應(yīng)該只能響應(yīng)POST請求,這可以防止授權(quán)令牌作為GET請求中的URL參數(shù)被暴露,同時,這可以防止腳本通過腳本標(biāo)簽被加載。瀏覽器可能會重新發(fā)出GET請求,這可能會導(dǎo)致一個操作會執(zhí)行一次以上,而重新發(fā)出的POST請求需要用戶的同意。
在處理JSON請求時,在響應(yīng)中增加非可執(zhí)行前綴,例如“\n”,以確保腳本不可執(zhí)行。在相同域名運(yùn)行的腳本可以讀取響應(yīng)內(nèi)容以及刪除前綴,但在其他域名運(yùn)行的腳本則不能。此外,開發(fā)者還應(yīng)該避免使用JSONP(具有填充功能的JSON)來從不同域名加載機(jī)密數(shù)據(jù),因?yàn)檫@會允許釣魚網(wǎng)站收集數(shù)據(jù)。同時,發(fā)送響應(yīng)表頭“X-Content-Type-Options: nosniff”也將幫助保護(hù)IE和谷歌Chrome用戶免受XSSI攻擊。
為了應(yīng)對XSS攻擊,可在HTTP Content-Type響應(yīng)表頭或者HTML代碼中meta標(biāo)簽中http-equiv屬性中指定CHARSET,讓瀏覽器不會解譯其他字符集的特殊字符編碼。對于使用ASP.NET開發(fā)網(wǎng)站的開發(fā)者,微軟Anti-Cross Site Scripting Library可以幫助保護(hù)Web應(yīng)用抵御跨站腳本漏洞。
現(xiàn)在有很多開源漏洞掃描工具可供開發(fā)者使用,以測試其代碼是否容易遭受XSS攻擊,例如Vega、Wapiti、OWASP的Zed Attack Proxy和Skipfish。企業(yè)應(yīng)該定期對網(wǎng)站進(jìn)行掃描,同時,在底層代碼變更或依靠第三方庫的功能集成到各種網(wǎng)頁時,也應(yīng)該掃描網(wǎng)站。
讀完此文,大家應(yīng)該知道兩者的區(qū)別在哪了。
相關(guān)文章
- 我先拿SOHU BLOG做示范. 1.測試過濾字符,下面都是構(gòu)造XSS所需要的關(guān)鍵字符(未包含全角字符,空格是個TABLE,/前是真正的空格),在個人檔案處看過濾了哪些. ’’;:2008-10-08
- 產(chǎn)品官方:360安全瀏覽器是全球首款采用“沙箱”技術(shù)的瀏覽器,能夠徹底避免木馬病毒從網(wǎng)頁上對你的計算機(jī)發(fā)起攻擊。360安全瀏覽器完全突破了傳統(tǒng)的以查殺、攔截為核心的安2008-10-08
- XSS漏洞一般是基于WEB程序的輸入輸出問題,但最近80SEC開始發(fā)現(xiàn)了一系列以IE為內(nèi)核的第三方瀏覽器的漏洞,在評估其中的XSS漏洞,我們發(fā)現(xiàn)了基于瀏覽器軟件自身設(shè)計造成的XS2008-10-08
- 1 背景知識 1.1 什么是XSS攻擊 XSS攻擊:跨站腳本攻擊(Cross Site Scripting),為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆。故將跨站腳本攻擊2008-10-08
利用XSS滲透DISCUZ 6.1.0實(shí)戰(zhàn)
網(wǎng)上關(guān)于XSS入侵網(wǎng)站的例子很多,但是大多都是一些惡作劇性質(zhì)的介紹.下面本人來親自介紹下利用腳本入侵國內(nèi)某安全論壇的過程 就像主題所說一樣,今天測試的論壇是DISCUZ!2009-04-18EimsCms v5.0 XSS+CSRF獲取Shell方法
影響版本:EimsCms v5.0 官方網(wǎng)站:http://www.eimscms.com/ 漏洞類型:跨站XSS 漏洞描述:未對Book.asp郵箱等處進(jìn)行符號轉(zhuǎn)義,導(dǎo)致XSS跨站執(zhí)行漏洞。2011-03-11- 對于的用戶輸入搜索出現(xiàn)XSS漏洞的問題,主要是由于開發(fā)人員對XSS了解不足,安全的意識不夠造成的。現(xiàn)在讓我們來普及一下XSS的一些常識,以后在開發(fā)的時候,每當(dāng)有用戶輸入2011-11-03
- XSS 攻擊常用腳本,大家可以了解xss攻擊的一些知識做好網(wǎng)站安全防范。2020-04-13
網(wǎng)站受到XSS跨站點(diǎn)腳本攻擊的分析及解決方法
本文詳細(xì)講了如何避免XSS跨站點(diǎn)腳本攻擊2012-06-07- 百度知道也出了漏洞了.我們來分析一下2012-06-27