跨網(wǎng)站腳本攻擊(XSS)的原理與防范對策_(dá)第1頁
跨網(wǎng)站腳本攻擊(XSS)的原理與防范對策_(dá)第2頁
跨網(wǎng)站腳本攻擊(XSS)的原理與防范對策_(dá)第3頁
跨網(wǎng)站腳本攻擊(XSS)的原理與防范對策_(dá)第4頁
跨網(wǎng)站腳本攻擊(XSS)的原理與防范對策_(dá)第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、跨網(wǎng)站腳本攻擊(XSS)的原理與防范對策摘要: 隨著計算機(jī)網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,網(wǎng)絡(luò)安全問題已變得越來越受到人們的重視, 網(wǎng)絡(luò)攻擊形式多種多樣, 很多蠕蟲病毒、 木馬病毒等植入到某些網(wǎng)頁中, 給網(wǎng)絡(luò)用戶帶來了 很大的安全隱患。其中XSS跨網(wǎng)站腳本攻擊,惡意攻擊者往Web頁面里插入惡意html代碼, 當(dāng)用戶瀏覽該頁之時,嵌入其中 Web里面的htmI代碼會被執(zhí)行,從而達(dá)到惡意攻擊用戶的 特殊目的。本文主要闡述了 XSS的機(jī)理和特點,重點分析了網(wǎng)頁代碼的檢測以及木馬的特征, 并針對這些特點進(jìn)行了一些相應(yīng)防范對策的探討。關(guān)鍵詞: 網(wǎng)頁木馬; XSS; 攻擊; 防范一、前言網(wǎng)頁木馬是一種新型的惡意代碼,

2、一些攻擊者將它人為的植入到服務(wù)器端的HTML頁面中,通過客戶端對服務(wù)器的訪問來傳播惡意攻擊代碼, 它主要是通過瀏覽器以及其中的一些 插件漏洞來進(jìn)行植入,網(wǎng)頁木馬是一種客戶端的攻擊方式,它能有效的繞過防火墻的檢測, 隱秘的在客戶端將惡意代碼植入, 客戶端在不知情的情況下將這些惡意可執(zhí)行程序進(jìn)行下載 和執(zhí)行。給互聯(lián)網(wǎng)用戶造成嚴(yán)重的安全威脅。在Web2.0出現(xiàn)以后,XSS的危害性達(dá)到了十分嚴(yán)重的地步。 跨站腳本英文名稱是(CrossSite Script ),為了與層疊樣式表( Cascading Style Sheets簡稱 CSS區(qū)分,故命名為XSS XSS攻擊是指入侵者在遠(yuǎn)程 WEB頁面的HT

3、ML弋碼中插入具有惡意目的的數(shù)據(jù),用戶 認(rèn)為該頁面是可信賴的,但是當(dāng)瀏覽器下載該頁面時,嵌入其中的腳本將被解釋執(zhí)行。XSS具有自身的獨有特點,目前國內(nèi)外很多研究人員圍繞XSS的防御進(jìn)行了深入的探討與研究,同時攻擊者也在采用一些更先進(jìn)的手段來提高木馬的攻擊隱蔽性,用以提高木馬的攻擊成功率,因此,XSS的機(jī)理與防范對策研究已成為了當(dāng)前計算機(jī)工作者的一個重要課題。二、XSS的機(jī)理與特征1. XSS的成因跨網(wǎng)站腳本XSS漏洞的成因其實就是 Html的注入問題,攻擊者的輸入沒有經(jīng)過嚴(yán)格的 控制進(jìn)入了數(shù)據(jù)庫, 最終顯示給來訪的用戶, 導(dǎo)致可以在來訪用戶的瀏覽器里以瀏覽用戶的 身份執(zhí)行 Html 代碼,數(shù)據(jù)

4、流程如下:攻擊者的 Html 輸入 web 程序 進(jìn)入數(shù)據(jù)庫 web 程序 用戶瀏覽器。目前,所有的網(wǎng)站上幾乎都提供一個站內(nèi)或站外信息搜索框。在此搜 索框中,您可以搜索到網(wǎng)站上任何可用的東西。這個搜索表單看起來這樣:攻咯/游記 Q圖1-1IfijHiim茫錄 A QQS錄圖1-2內(nèi)部代碼: 在asp網(wǎng)頁上顯示的搜索結(jié)果,同時它也列出了在“關(guān)鍵字”的搜索結(jié)果。web頁面上,不管用戶搜索什么內(nèi)容,它將顯示搜索結(jié)果在網(wǎng)頁上。現(xiàn)在如果一個攻擊者嘗試注 入惡意腳本,比如在搜索框中輸入如下Html代碼:“ alert( XSS跨站腳本攻擊) ” 則代碼會變成 input type=text name=q

5、value=alert( XSS跨站腳本攻擊) / ,嵌入的JavaScript 代碼將會被瀏覽器執(zhí)行,將顯示一個警告框,提示“XSS跨站腳本攻擊”。而不能完成用戶搜索功能。 (上 述兩個網(wǎng)站已經(jīng)做 XSS過濾,不能看見警告框)下面是一個關(guān)于用戶注冊頁面的例子,當(dāng)然這個示例很簡單,幾乎攻擊不到任何網(wǎng)站,僅僅看看其原理。我們知道很多網(wǎng)站都提供用戶注冊功能,網(wǎng)站后臺數(shù)據(jù)庫存儲用戶名、密碼,方便用戶下次登錄,有些網(wǎng)站是直接用明文記錄用戶名、密碼,惡意用戶注冊賬戶登錄后使用簡單工具查看 cookie結(jié)構(gòu)名稱后,如果網(wǎng)站有XSS漏洞,那么簡單的就可以獲取其它用戶的用戶名、密碼了。ft s 1 1圖2-1

6、如圖2-1所示的用戶注冊頁面。允許用戶填入注冊信息,然后存儲到后臺數(shù)據(jù)庫中。因為我們完全信任了用戶輸入,用戶注冊信息都能正確的進(jìn)入數(shù)據(jù)庫。但有些惡意的用戶會利用這個漏洞輸入 HTML和 JS 代碼,例如 這段代碼直接輸入到用戶名”欄中,竊取 用戶信息。在 http:/www.123.eom/h.js 中:var user name=CookieHelper.getCookie(user name).value;var password=CookieHelper.getCookie(password).value;var script =docume nt.createEleme nt(scri

7、pt);script.src= ndex.asp?username=+username+&password=+passw ord ;docume nt.body.appe ndChild(script);這樣就輕松的獲取了cookie中的用戶名和密碼。2. 跨網(wǎng)站腳本攻擊的類型2.1非持久性跨網(wǎng)站腳本攻擊,非持久性 XSS也稱為是反射跨網(wǎng)站漏洞。它是最常見 的XSS類型。在這,注入數(shù)據(jù)反射給攻擊者。上面的例1,是非持續(xù)的攻擊。典型的非持久性XSS包含與XSS的鏈接。2.2 持久性跨網(wǎng)站腳本攻擊(存儲性),持久性跨網(wǎng)站腳本是存儲跨站點腳本。當(dāng)它發(fā)生時XSS變量存儲在網(wǎng)站的數(shù)據(jù)庫,每當(dāng)用戶打開網(wǎng)頁

8、時執(zhí)行。每次用戶打開瀏覽器,腳 本執(zhí)行。持久性 XSS比非持久性XSS更有害,因為每當(dāng)用戶打開要查看的內(nèi)容的網(wǎng)頁時, 將自動執(zhí)行該腳本。上面例2就是持久性跨網(wǎng)站腳本攻擊。2.3 基于D0M勺跨站腳本攻擊,基于DOM的XSS有時也稱為“type-0 XSS。它發(fā)生時,XSS 變量執(zhí)行由 DOM 修改用戶的瀏覽器網(wǎng)頁的結(jié)果。在客戶端的 HTTP 響應(yīng)不會更改,但 以惡意的方式執(zhí)行的腳本。三、XSS防范對策XSS攻擊的模式很簡單,就是把自己的代碼嵌入到頁面里,隨頁面一塊執(zhí)行;XSS攻擊的防范也一樣簡單, 對于網(wǎng)站的開發(fā)者, 首先應(yīng)該把精力放到對所有用戶提交內(nèi)容進(jìn)行可靠 的輸入驗證上。這些提交內(nèi)容包括

9、HTML URL查詢關(guān)鍵字、http頭、post、get數(shù)據(jù)等。只接受在你所規(guī)定長度范圍內(nèi)、 采用適當(dāng)格式、你所希望的字符。 阻塞、過濾或者忽略其它 的任何東西。針對出現(xiàn)在不同位置的用戶輸入內(nèi)容,其處理策略有所不同。1、html只需要處理掉 即可,只要沒有 html 標(biāo)簽,頁面就是安全的。可以使用 asp 內(nèi)置方 法 Replace (str, “”, “”, “”) 來處理待輸出的內(nèi)容,將, 轉(zhuǎn)義。2、JS將要輸出到 js 代碼片斷中的用戶輸入內(nèi)容沒有好的辦法進(jìn)行處理;僅轉(zhuǎn)義少數(shù)字符不 能保證去掉所有的攻擊可能。 因此, 一般建議不要把用戶產(chǎn)生的內(nèi)容直接輸出到 js 片斷中。 如果條件所限,

10、必須將內(nèi)容直接輸出,有如下方法可供選擇:1) 如果待輸出的內(nèi)容有特定的取值返回或者特定的格式,可以使用白名單或者正則表 達(dá)式進(jìn)行處理。2) 可以將內(nèi)容輸出到 html 的隱藏標(biāo)簽或隱藏表單中, js 通過獲取標(biāo)簽的內(nèi)容得到該 內(nèi)容。3、檢查那么, 對已有的頁面, 該如何檢查呢?這個問題的回答是, 目前沒有很好的辦法能完全 檢查出服務(wù)器中可能存在 XSS攻擊的頁面;有一些辦法可以檢查出比較明顯的疏漏,其基本思路如下:1) 從 apache 的 access_log 中取出所有 unique 的請求,依次修改其某一個參數(shù)為“alert(xss)”,發(fā)起請求。2) 獲取返回的內(nèi)容,如果內(nèi)容中有原樣的該字符串,表明此可疑輸入沒有經(jīng)過處理便 輸出到頁面上,頁面存在隱患,需要處理。通過這種辦法,可以檢查出絕大多數(shù)能通過get 請求發(fā)起的 XSS 攻擊。那些在access_log 沒有出現(xiàn)的請求參數(shù),這里沒有檢查到,可能有所遺漏,就需要手動去整理, 測試。通過 Post 發(fā)起的請求需要用另外一種策略進(jìn)行檢查。其思路如下:將網(wǎng)站上所有可 以輸入的表單,依次輸入特征字符串,比如說 ,如果提交后產(chǎn)生的頁面中含有未處 理的此字符串,說明存在隱患。通過以上分析我們看到,XSS是一種危害較大、較難防范,并且更加隱蔽的攻擊

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論