• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      跨站腳本攻擊實(shí)踐及防范

      2010-08-07 08:20:56趙玉龍張旋劉夢瑤李沁蕾
      關(guān)鍵詞:腳本字符攻擊者

      趙玉龍 張旋 劉夢瑤 李沁蕾

      華中科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 湖北 430074

      0 引言

      隨著Internet的發(fā)展,基于Web和數(shù)據(jù)庫架構(gòu)的應(yīng)用系統(tǒng)已經(jīng)逐漸成為主流,廣泛應(yīng)用于企業(yè)內(nèi)部和外部的業(yè)務(wù)系統(tǒng)中。各種基于 Web 應(yīng)用的業(yè)務(wù)模式不斷成熟,但是各種網(wǎng)絡(luò)安全事件也隨之不斷發(fā)生。據(jù)國家計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心(CNCERT/CC)的統(tǒng)計(jì),2007年接收的網(wǎng)絡(luò)仿冒事件和網(wǎng)頁惡意代碼事件,分別超出2006年總數(shù)的近1.4倍和 2.6倍;賽門鐵克(Symantec)公司 2008年 4月發(fā)布的Symantec Internet Security Threat Report中提到,2007年下半年有超過80%的網(wǎng)站都或多或少地有著XSS漏洞;而2008年5月,我國大陸地區(qū)被篡改網(wǎng)站的數(shù)量就有6915個(gè)。近日,微軟安全應(yīng)急小組確認(rèn)了微軟SharePoint Server 2007產(chǎn)品中的嚴(yán)重的跨站腳本漏洞(XSS)的存在。各種Web 應(yīng)用的安全事件嚴(yán)重影響了Web 應(yīng)用的發(fā)展,其中基于XSS漏洞的攻擊尤為嚴(yán)重。

      1 XSS漏洞原理

      隨著各種網(wǎng)站程序設(shè)計(jì)及網(wǎng)站管理設(shè)置的安全程度越來越高,各類惡意的入侵攻擊者都被阻擋在網(wǎng)站安全防線之外,攻擊者想要入侵攻擊某個(gè)網(wǎng)站服務(wù)器,是越來越困難的事情。于是攻擊者的入侵目標(biāo)轉(zhuǎn)向了網(wǎng)站的瀏覽者。

      由于HTML語言支持腳本語言嵌入頁面中的機(jī)制,從而引發(fā)了腳本的安全問題。XSS(Cross-Site Scripting)是最常見的一種應(yīng)用層的攻擊。XSS 攻擊基本上是將攻擊代碼注入到各種瀏覽器的解釋過程中,同時(shí)利用 XSS 漏洞旁路調(diào)用訪問控制——例如同源策略;這種攻擊可以使用各種客戶端語言實(shí)現(xiàn),而且這種類型的漏洞往往被用來編寫危害性更大的phishing攻擊和利用瀏覽器漏洞的攻擊。

      利用跨站漏洞入侵者可以進(jìn)行非常多的攻擊,例如盜取別人Cookie中的賬號和密碼,或者偽造頁面,或者進(jìn)行掛馬,總之跨站漏洞是一個(gè)危害性很大的漏洞。

      2 XSS攻擊的類型

      (1)反射型(又稱非持久型)XSS攻擊

      如果一個(gè)應(yīng)用程序使用動(dòng)態(tài)頁面向用戶顯示錯(cuò)誤消息,就會(huì)造成這種常見的XSS漏洞。通常,該頁面會(huì)使用一個(gè)包含消息文本的參數(shù),并在響應(yīng)中將這個(gè)文本返回給用戶。

      開發(fā)人員可能沒有對輸入進(jìn)行過濾。那么就可能產(chǎn)生不良后果。例如:輸入一段腳本來進(jìn)行測試<script>alert(“XSS”)</script>如圖 1。

      圖1 測試界面

      如果開發(fā)人員沒有進(jìn)行過濾,那么,頁面中將會(huì)彈出一個(gè)帶有“XSS”對話框如圖2所示。

      (2)保存型(又稱持久型)XSS攻擊

      如果一名用戶提交的數(shù)據(jù)被保存在應(yīng)用程序中,(通常保存在一個(gè)后端數(shù)據(jù)庫中),然后不經(jīng)適當(dāng)過濾或凈化,就顯示給其他用戶,此時(shí)就會(huì)出現(xiàn)這種漏洞。在支持終端用戶交互的應(yīng)用程序中,或者在具有管理權(quán)限的員工訪問同一個(gè)應(yīng)用程序中的用戶記錄和數(shù)據(jù)的應(yīng)用程序中,保存型XSS漏洞很常見。

      圖2 帶有“XSS”對話框

      一般情況下,利用保存型XSS漏洞的攻擊至少需要向應(yīng)用程序提出兩個(gè)請求。攻擊者在第一個(gè)請求中傳送一些專門設(shè)計(jì)的數(shù)據(jù),其中包含惡意代碼;應(yīng)用程序接受并保存這些數(shù)據(jù)。在第二個(gè)請求中,一名受害者查看某個(gè)包含攻擊者的數(shù)據(jù)的頁面,這時(shí)惡意代碼開始執(zhí)行。為此,這種漏洞有時(shí)也叫做二階跨站點(diǎn)腳本。

      例如在一個(gè)正常的留言板頁面中,如果對用戶輸入的字符沒有加以限制,在發(fā)表新留言中嵌入代碼</script><iframe height=500 width=500 src="http://www.baidu.com"></iframe>當(dāng)留言成功后,如果其他用戶訪問該留言板時(shí)就會(huì)發(fā)現(xiàn)在留言板中嵌入了一個(gè)百度搜索的框體(如圖3)。

      圖3 保存型XSS攻擊

      (3)基于DOM的XSS攻擊

      DOM-bassed XSS是基于文件對象模型(Document Object Model)的一種漏洞,DOM 是一種與平臺編程語言無關(guān)的接口,它允許程序或腳本動(dòng)態(tài)地訪問和更新文檔的內(nèi)容、結(jié)構(gòu)和樣式,處理后成為顯示頁面的一部分,DOM中的URL,location,referrer等內(nèi)容都是用戶可以操縱的,客戶端腳本程序可以動(dòng)態(tài)修改頁面內(nèi)容,而不是依賴于提交給服務(wù)器的數(shù)據(jù),而從客戶端獲得的DOM中的數(shù)據(jù)沒有嚴(yán)格確認(rèn),就會(huì)產(chǎn)生基于DOM的XSS漏洞。

      例如 HTTP請求一個(gè)頁面 HTTP://www.xxx.com/print.html?user=ABC實(shí)際上是使用了一個(gè)腳本輸出用戶名,但是如果把user=ABC改為<script>alert(“hello”)</script>就會(huì)導(dǎo)致XSS攻擊。當(dāng)用戶訪問這個(gè)頁面就會(huì)彈出一個(gè)窗口。

      如果腳本處寫的是惡意代碼,并且將這個(gè) URL發(fā)給其他用戶,就會(huì)導(dǎo)致其他用戶在不知情的情況下執(zhí)行了惡意的代碼。

      3 XSS攻擊的利用

      (1)掛馬

      利用保存型XSS漏洞可以進(jìn)行掛馬,保存型跨站腳本攻擊可以利用頁面的輸入框體對信息過濾不嚴(yán)格嵌入 JavaScript腳本,導(dǎo)致其他用戶訪問該頁面時(shí)運(yùn)行腳本。這個(gè)漏洞便可以利用進(jìn)行掛馬。

      從上面嵌入網(wǎng)頁框架可以看出,如果訪問一個(gè)網(wǎng)站,該網(wǎng)站被嵌入了其他網(wǎng)站的框架,另一個(gè)網(wǎng)站也會(huì)被訪問。因此我們可以構(gòu)建一個(gè)長度和寬度均為0的網(wǎng)頁框架,在網(wǎng)頁框架中會(huì)打開填寫的網(wǎng)頁地址,代碼如下:</script><iframe height=0 width=0 src="http://www.木馬.com"></iframe>而且該網(wǎng)頁在頁面中是完全隱蔽的,從外觀上看不出與正常頁面任何的不同。但是,訪問正常頁面的用戶不知不覺中卻訪問了另一個(gè)包含有木馬的網(wǎng)站,瀏覽器可能會(huì)下載一份木馬到本地計(jì)算機(jī)上。

      或者也有可能嵌入的 JavaScript腳本本身就是一段惡意的代碼,可以在訪問者的本地執(zhí)行一些非法的操作。

      (2)cookie盜取

      假設(shè)有一個(gè)論壇,該論壇用cookie來存儲(chǔ)用戶的登錄信息。而此論壇的用戶信息頁面存在一個(gè)XSS漏洞,比如說個(gè)人簡介欄中。Bob是一個(gè)攻擊者,他發(fā)現(xiàn)了該論壇的這個(gè)漏洞,而且Bob擁有一個(gè)www.attacker.com的域,那么Bob就具備了攻擊的條件。

      首先,Bob注冊成為這個(gè)論壇的用戶,盡可能多的在自己的 ID中增加有吸引力的元素,然后在自己的個(gè)人簡介等處添加代碼,并且Bob在自己的域中架設(shè)一個(gè)服務(wù)器,這時(shí)普通用戶Alice在查看Bob的個(gè)人簡介的時(shí)候也會(huì)向B的服務(wù)器中提交自己訪問論壇等地方的COOKIE,這時(shí)Bob可以利用獲得的COOKIE冒充Alice用戶登錄論壇,如果Alice用戶是一個(gè)管理員的話,此時(shí)Bob將獲得論壇的管理員權(quán)限。

      或者如果論壇中存在基于DOM型的XSS漏洞時(shí),Bob只需要發(fā)送給Alice類似于http://www.luntan.com/login.php?message= <script>var+i=new+Image;+i.src=” http://www.attacker.com/”+document.cookie;</script>這樣的鏈接時(shí),Alice可能就會(huì)因?yàn)辄c(diǎn)擊了這樣的鏈接登錄論壇而導(dǎo)致COOKIE被竊取。

      4 XSS攻擊的防范

      跨站腳本攻擊具有相當(dāng)大的危害性,而且跨站腳本攻擊相對于其他網(wǎng)絡(luò)漏洞攻擊而說,它具有更加隱蔽的特點(diǎn)。因此它的防范也更加困難。XSS攻擊產(chǎn)生在用戶和Web程序交互的過程中,因此防范跨站腳本攻擊需要我們在編碼上和用戶安全意識上兩方面入手采取相應(yīng)的防范手段。

      (1)編碼過程中對非法字符串進(jìn)行處理

      ① 確認(rèn)輸入串的規(guī)則和長度

      如果網(wǎng)站需要保存或者對用戶提交的數(shù)據(jù)進(jìn)行反應(yīng)時(shí),網(wǎng)站應(yīng)用程序應(yīng)當(dāng)對用戶提交的數(shù)據(jù)進(jìn)行盡可能嚴(yán)格的確認(rèn),應(yīng)當(dāng)保證:

      數(shù)據(jù)的長度不要太長;

      數(shù)據(jù)盡包含合法的字符串;

      數(shù)據(jù)應(yīng)當(dāng)與相應(yīng)的正規(guī)表達(dá)式相匹配,例如對電子郵件地址和姓名應(yīng)當(dāng)使用不同的確認(rèn)規(guī)則。

      ② 將字符串進(jìn)行編碼輸出

      網(wǎng)站也應(yīng)當(dāng)對用戶提交的數(shù)據(jù)進(jìn)行HTML編碼,以過濾可能產(chǎn)生的惡意字符。這樣可以保證瀏覽器在瀏覽到惡意代碼時(shí)可以安全的處理,把惡意的字符當(dāng)做是HTML文檔的內(nèi)容而非是結(jié)構(gòu)。例如將字符HTML編碼如下:

      " "

      ' '

      & &

      < <

      > >

      ③ 過濾特殊的輸入字符

      由于產(chǎn)生惡意腳本大部分是由于執(zhí)行了"<>"等惡意的標(biāo)簽或者字符內(nèi)容,因此我們應(yīng)當(dāng)將用戶輸入的可能在HTML里產(chǎn)生腳本的惡意字符進(jìn)行過濾掉,禁止用戶提交該類代碼這類字符主要包括“< > " ' % ; ( ) & + -”等。

      ④ 對可能造成跨站攻擊的地方進(jìn)行審查

      在網(wǎng)站的頁面上有一些位置是用來給用戶提交輸入的地方,在對這些地方編寫代碼的時(shí)候應(yīng)當(dāng)進(jìn)行特別的審查和測試防止有方式可以注入惡意的字符串,在審查的時(shí)候可以利用一些開源的審查軟件如:RatProxy等對網(wǎng)站的安全性進(jìn)行測評。

      (2)作為網(wǎng)絡(luò)用戶的防范措施

      只訪問可信任的站點(diǎn),而且在訪問信任站點(diǎn)的時(shí)候最好是通過地址欄直接輸入地址進(jìn)行訪問而不是通過其他站點(diǎn)的鏈接;

      不要輕易訪問其他人給你的鏈接,特別是跟了很長一段字符串的鏈接,因?yàn)檫@段字符可能是惡意的腳本進(jìn)行編碼后的結(jié)果;

      禁止瀏覽器直接不經(jīng)過任何限制的運(yùn)行 JavaScript或者ActiveX.;

      定時(shí)對防病毒軟件和防火墻進(jìn)行升級。

      5 結(jié)束語

      跨站腳本攻擊不同于普通的針對網(wǎng)站或者針對服務(wù)器的攻擊,此類攻擊往往不易引起網(wǎng)站應(yīng)用程序開發(fā)者的注意和重視,然而正是如此,跨站腳本攻擊才會(huì)對網(wǎng)站的正常訪問者造成非常大的安全威脅。為了防范跨站腳本漏洞和攻擊不僅僅需要網(wǎng)站開發(fā)和建設(shè)者的努力,更需要瀏覽器的制作商的支持,以及網(wǎng)絡(luò)用戶的安全意識的提高,因此,針對跨站腳本攻擊已經(jīng)成為了網(wǎng)絡(luò)安全領(lǐng)域的熱點(diǎn)話題。

      [1] Daffdd Stuttard,Marcus Pinto著,石華耀等譯.黑客攻防技術(shù)寶典(web實(shí)戰(zhàn)篇).人民郵電出版社.2009.

      [2] 逍遙.網(wǎng)站入侵與腳本攻防修煉.電子工業(yè)出版社.2008.

      [3] 古開元,周安民.跨站腳本攻擊原理與防范.網(wǎng)絡(luò)安全技術(shù)與應(yīng)用.2006.

      [4] 黃文鋒.DOM-based XSS攻擊原理與防范.華南金融電腦.2009.

      猜你喜歡
      腳本字符攻擊者
      酒駕
      尋找更強(qiáng)的字符映射管理器
      基于微分博弈的追逃問題最優(yōu)策略設(shè)計(jì)
      安奇奇與小cool 龍(第二回)
      字符代表幾
      一種USB接口字符液晶控制器設(shè)計(jì)
      電子制作(2019年19期)2019-11-23 08:41:50
      消失的殖民村莊和神秘字符
      數(shù)據(jù)庫系統(tǒng)shell腳本應(yīng)用
      電子測試(2018年14期)2018-09-26 06:04:24
      正面迎接批判
      愛你(2018年16期)2018-06-21 03:28:44
      快樂假期
      贞丰县| 阿拉善盟| 宜都市| 平山县| 鲁山县| 广西| 加查县| 杭锦后旗| 调兵山市| 磐安县| 土默特左旗| 旺苍县| 清涧县| 咸阳市| 华亭县| 镇坪县| 平山县| 贵阳市| 马山县| 马尔康县| 兴山县| 微博| 咸阳市| 响水县| 乌拉特中旗| 大姚县| 揭西县| 钦州市| 拉萨市| 伊宁县| 鹤峰县| 郁南县| 东城区| 淅川县| 屏南县| 永胜县| 钦州市| 容城县| 广水市| 萝北县| 安阳市|