• 
    

    
    

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

      Web中XSS攻擊檢測(cè)與防范措施

      2012-12-27 14:40:38
      關(guān)鍵詞:腳本攻擊者瀏覽器

      (河西學(xué)院信息技術(shù)中心,甘肅張掖734000)

      Web中XSS攻擊檢測(cè)與防范措施

      王志春

      (河西學(xué)院信息技術(shù)中心,甘肅張掖734000)

      XSS(跨站腳本)攻擊,是惡意用戶利用驗(yàn)證上的漏洞將腳本命令嵌入到可以顯示的數(shù)據(jù)中,使其在另一個(gè)用戶瀏覽時(shí)可以執(zhí)行這些腳本命令.針對(duì)XSS漏洞屢遭攻擊這一現(xiàn)狀,通過對(duì)XSS漏洞的詳盡分析,列舉了對(duì)XSS漏洞攻擊的檢測(cè)方式和方法.根據(jù)攻擊的特點(diǎn),為系統(tǒng)的安全提出了相應(yīng)的防御措施.

      XSS;Web;跨站腳本;檢測(cè);防范

      Web2.0網(wǎng)絡(luò)使用戶與網(wǎng)站的互動(dòng)更加方便和頻繁,用戶在論壇發(fā)表評(píng)論或留言,既是網(wǎng)站內(nèi)容的瀏覽者,也是網(wǎng)站內(nèi)容的制造者.但是,也帶來了網(wǎng)絡(luò)安全隱患,跨站腳本(Cross-Site Scripting,XSS)漏洞就是Web應(yīng)用程序漏洞中較為突出的一類.XSS攻擊的原理是,訪問者利用Web應(yīng)用程序的漏洞,通過網(wǎng)頁的輸入框上傳惡意的腳本代碼,通常是JavaScript腳本片段,而這些惡意輸入在提交后,重新讀回客戶端時(shí)會(huì)嵌入遠(yuǎn)程Web頁面,當(dāng)用戶對(duì)此站點(diǎn)進(jìn)行再次訪問時(shí),該用戶的瀏覽器就會(huì)自動(dòng)加載并解釋執(zhí)行這些惡意的腳本.借助于這種巧妙注入惡意的指令碼到其它網(wǎng)域的服務(wù)網(wǎng)頁的方法,攻擊者可得到了更高的特權(quán),竊取機(jī)密的網(wǎng)頁內(nèi)容、會(huì)談的Cookie、以及許多其它的對(duì)象.

      1 漏洞分類

      根據(jù)漏洞形成的原因,跨站腳本漏洞大致可以分為以下3類:反射式跨站腳本漏洞、儲(chǔ)存式跨站腳本漏洞和基于DOM的跨站點(diǎn)腳本漏洞.

      1.1 反射式跨站腳本漏洞(Reflected XSS)

      反射式跨站腳本是非持久性跨站腳本的另一個(gè)名稱.當(dāng)Web應(yīng)用程序存在易受到這種攻擊的漏洞時(shí),它會(huì)將未經(jīng)驗(yàn)證的數(shù)據(jù)通過請(qǐng)求發(fā)送給客戶端.如果未經(jīng)驗(yàn)證的客戶端輸入數(shù)據(jù)被直接包含在生成的頁面中,便可能造成客戶端腳本直接注入到動(dòng)態(tài)頁面中.常見的攻擊手法一般通過攻擊者創(chuàng)建并構(gòu)造畸形URL實(shí)現(xiàn),常見的攻擊者代碼是用JavaScript語言,但也會(huì)使用其它的腳本語言,例如,ActionS-cript和VBScript.攻擊者通常會(huì)利用這些漏洞來安裝鍵盤記錄器、竊取受害者的cookie、竊取剪貼板內(nèi)容、改變網(wǎng)頁內(nèi)容.

      1.2 儲(chǔ)存式跨站腳本漏洞(Stored XSS)

      儲(chǔ)存式跨站腳本是一種最危險(xiǎn)的跨站腳本,允許用戶存儲(chǔ)數(shù)據(jù)的Web應(yīng)用程序都有可能接觸到這種類型的攻擊.如果Web應(yīng)用程序從惡意用戶處收集了輸入數(shù)據(jù)并將這些數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中以供今后使用,就可能會(huì)發(fā)生儲(chǔ)存式跨站腳本攻擊,因?yàn)榇鎯?chǔ)的輸入數(shù)據(jù)沒有經(jīng)過正確過濾,所以惡意數(shù)據(jù)將顯示為網(wǎng)站的一部分并在Web應(yīng)用程序授權(quán)下在用戶瀏覽器中運(yùn)行.當(dāng)用戶使用較高特權(quán)訪問有存儲(chǔ)式跨站腳本漏洞的網(wǎng)頁時(shí),那么儲(chǔ)存跨站腳本將更加危險(xiǎn),比如管理員訪問存在漏洞的網(wǎng)頁時(shí),瀏覽器會(huì)自動(dòng)執(zhí)行攻擊,這就可能導(dǎo)致敏感信息泄露,如會(huì)話授權(quán)令牌.

      1.3 基于DOM的跨站點(diǎn)腳本漏洞(DOM Based XSS )

      基于DOM的跨站點(diǎn)腳本的實(shí)際名稱是跨站腳本漏洞.該漏洞是動(dòng)態(tài)網(wǎng)頁內(nèi)容的結(jié)果,一般是JavaScript,網(wǎng)頁通過獲取用戶的輸入,然后進(jìn)行一些不安全的操作導(dǎo)致產(chǎn)生XSS漏洞,攻擊者使用DOM元素和定制的代碼以控制代碼流程并改變流程.由于其性質(zhì),基于DOM的跨站點(diǎn)腳本漏洞可以在許多情況下執(zhí)行.

      2 漏洞檢測(cè)

      2.1 反射式XSS攻擊檢測(cè)

      反射式XSS攻擊是在URL地址的參數(shù)中嵌入腳本來實(shí)現(xiàn)的.這種XSS攻擊比較簡(jiǎn)單,正常的URL中HTTP標(biāo)記是不會(huì)出現(xiàn)的,只需檢查URL中是否有HTTP的標(biāo)記就可以知道是否有XSS攻擊了.為了檢測(cè)是否存在漏洞,必須需確定Web程序中的變量及其如何輸入;輸入無害的攻擊字段觸發(fā)瀏覽器以發(fā)現(xiàn)潛在的漏洞;針對(duì)已發(fā)現(xiàn)的漏洞進(jìn)行攻擊,評(píng)估是否會(huì)對(duì)Web程序的安全產(chǎn)生實(shí)際影響.這需要使用許多測(cè)試向量,每個(gè)測(cè)試向量避免不同的過濾程序.例如,執(zhí)行下面的代碼:

      規(guī)則表達(dá)將檢查是否插入了<script[anything but the character:'>']src,而類似的常見攻擊<script src=“http://attacker.com/xss.js”></script>對(duì)于過濾表達(dá)式很有效果.但是也有可能在腳本和SRC間的屬性中使用“>”字符繞過過濾程序,這將導(dǎo)致利用上述反射式跨站腳本漏洞.如:

      2.2 存儲(chǔ)式XXS檢測(cè)

      XSS漏洞最常出現(xiàn)在讓用戶輸入信息并瀏覽的頁面,比如任何有輸入的地方:留言、回復(fù)、論壇、BLOG等.通常將腳本輸入到被攻擊站點(diǎn)的輸入域中,提交后,腳本代碼被儲(chǔ)存在有漏洞的服務(wù)器上,當(dāng)用戶瀏覽此Web頁面時(shí)該腳本就開始執(zhí)行.應(yīng)用程序存儲(chǔ)的輸入數(shù)據(jù)通常在HTML標(biāo)記中使用,但它也可能在JavaScript內(nèi)容中存在,通過分析HTML代碼以確認(rèn)輸入數(shù)據(jù)是否存儲(chǔ)并且如何在網(wǎng)頁內(nèi)容中定位來檢測(cè)漏洞.通常在注冊(cè)頁面中需要輸入郵箱,而包含郵箱值的HTML代碼為:

      輸入驗(yàn)證/過濾控制腳本測(cè)試應(yīng)用程序,腳本如下:

      提交輸入,如果實(shí)施客戶端的安全控制,通常會(huì)導(dǎo)致禁用JavaScript或修改HTTP請(qǐng)求,如WebScarab.重新加載頁面時(shí)瀏覽器存儲(chǔ)輸入并執(zhí)行跨站腳本,上述注入結(jié)果導(dǎo)致彈出包含cookie值的窗口.注入后的HTML代碼是:

      如果Web應(yīng)用程序允許文件上傳,就需要檢查是否有可能上傳HTML內(nèi)容.如果允許HTML或TXT文件,那么在文件上傳時(shí)可能注入跨站腳本,需要驗(yàn)證上傳的文件是否允許設(shè)置任意MIME類型.利用瀏覽器MIME的設(shè)計(jì)缺陷.例如,像JPG和GIF這種看似無害的文件可能包含一個(gè)跨站腳本,當(dāng)瀏覽器裝載這些文件時(shí),就會(huì)執(zhí)行該攻擊.當(dāng)image/gif等圖像受到MIME攻擊時(shí),他們可能設(shè)置成文本/HTML格式.在這種情況下,客戶端瀏覽器將把該文件視為HTML.

      文件上傳時(shí)的HTTP POST請(qǐng)求:

      Internet Explorer不按照Mozilla Firefox或其他瀏覽器相似的方式處理MIME類型.例如,Internet Explorer將包含HTML內(nèi)容的TXT文件視為HTML內(nèi)容.

      2.3 基于DOM的XXS檢測(cè)

      反射式和儲(chǔ)存式漏洞是通過服務(wù)器傳遞跨站腳本中的參數(shù),返回給用戶并在用戶的瀏覽器中執(zhí)行,不需要服務(wù)器確定哪些需要執(zhí)行,導(dǎo)致許多一般的跨站腳本過濾和檢測(cè)規(guī)則對(duì)此類攻擊無能為力.假設(shè)使用下面的客戶端代碼:

      攻擊者可能給受感染頁面追加#<script>alert('xss')</script>,導(dǎo)致在執(zhí)行該腳本時(shí)會(huì)顯示警告框,由于瀏覽器認(rèn)為凡是有#字符都不是查詢的一部分,而只是一個(gè)片段,因此不會(huì)將附加的代碼發(fā)送給服務(wù)器.而JavaScript的應(yīng)用程序跟他類型的應(yīng)用程序有很大不同,他們往往是服務(wù)器動(dòng)態(tài)生成的.

      服務(wù)器端將數(shù)據(jù)插入到JavaScript:

      客戶端JavaScript對(duì)象的輸入:

      當(dāng)通過服務(wù)器獲得輸入時(shí),服務(wù)器可以使用任何方式排列數(shù)據(jù),而JavaScript對(duì)象執(zhí)行的排列卻清楚易懂并便于記錄.

      2.4 繞過JavaScript的XSS檢測(cè)

      有很多工具可以在瀏覽器發(fā)送Get/Post請(qǐng)求前將其截取,攻擊者可以修改請(qǐng)求中的數(shù)據(jù),從而繞過JavaScript的檢驗(yàn)將惡意數(shù)據(jù)注入服務(wù)器.通過Web應(yīng)用程序這個(gè)中間載體,竊取受害者客戶端的cookie或其他信息以冒充正??蛻粼赪eb應(yīng)用程序上進(jìn)行認(rèn)證,從而完成攻擊.以下是一些常用的截取HTTP請(qǐng)求的工具:

      這些工具可以被攻擊者用來截取并修改數(shù)據(jù)達(dá)到攻擊的目的,同時(shí)也可以用來對(duì)Web應(yīng)用程序進(jìn)行安全性測(cè)試.利用上述工具截取Web應(yīng)用程序發(fā)送的數(shù)據(jù)并修改,主動(dòng)向被測(cè)試的Web站點(diǎn)發(fā)送修改后的XSS輸入,通過判斷輸入輸出的情況,可以達(dá)到對(duì)Web站點(diǎn)進(jìn)行XSS漏洞檢測(cè)的目的.

      TamperIE小巧易用,能繞過客戶端瀏覽器JavaScript的校驗(yàn),監(jiān)視IE瀏覽器與服務(wù)器之間的HTTP通信,截取IE瀏覽器發(fā)送的Get/Post請(qǐng)求,修改其中的數(shù)據(jù),然后再發(fā)送修改后的數(shù)據(jù)到服務(wù)器.如圖1所示:

      圖1 TamperIE修改

      3 XSS防范

      XSS攻擊主要是利用程序中存在的漏洞,在用戶和WEB交互的過程中進(jìn)行,所以需要在編碼和用戶兩方面采取相應(yīng)的防范措施.

      3.1 編碼中防范措施

      輸入驗(yàn)證:用戶與網(wǎng)站進(jìn)行交互的數(shù)據(jù)被顯示或存儲(chǔ)前,使用輸入驗(yàn)證機(jī)制對(duì)用戶輸入的數(shù)據(jù)進(jìn)行確認(rèn),檢測(cè)輸入數(shù)據(jù)的長(zhǎng)度、類型和語法規(guī)則,保證輸入數(shù)據(jù)的長(zhǎng)度不能太長(zhǎng)、包含合法的字符并且與相應(yīng)的正則表達(dá)式相匹配.

      字符串過濾:網(wǎng)站對(duì)用戶提交的數(shù)據(jù)應(yīng)進(jìn)行HTML編碼,過濾惡意字符;保證瀏覽器可以安全的處理惡意代碼,把惡意的字符當(dāng)作是HTML文檔的內(nèi)容而非是結(jié)構(gòu);禁止用戶提交該類代碼,這類字符主要包括“<>”“%;()&+-”等.需要注意的是,僅查找或替換一些如“<”、“>”或類似“script”的關(guān)鍵字,很容易被XSS變種攻擊繞過驗(yàn)證機(jī)制.

      指定編碼方式:確保數(shù)據(jù)輸出前用戶提交的數(shù)據(jù)已被正確進(jìn)行編碼,對(duì)所有字符進(jìn)行編碼而不僅局限于某個(gè)子集.明確指定輸出的編碼方式如UTF8,不要允許攻擊者選擇編碼方式.

      3.2 用戶的防范措施

      訪問可信任的站點(diǎn),而且在訪問信任站點(diǎn)的時(shí)候最好是通過地址欄直接輸入地址進(jìn)行訪問而不是通過其他站點(diǎn)的鏈接;不要輕易訪問其他人給你的鏈接,特別是跟了很長(zhǎng)一段字符串的鏈接,因?yàn)檫@段字符可能是惡意的腳本進(jìn)行編碼后的結(jié)果;禁止瀏覽器直接不經(jīng)過任何限制的運(yùn)行JavaScript或者ActiveX.;定時(shí)對(duì)防病毒軟件和防火墻進(jìn)行升級(jí).從網(wǎng)站用戶角度.當(dāng)你打開一封Email或附瀏覽論壇帖子時(shí),可能惡意腳本會(huì)自動(dòng)執(zhí)行,因此,在做這些操作時(shí)一定要特別謹(jǐn)慎.建議在瀏覽器設(shè)置中關(guān)閉JavaScript.

      4 結(jié)束語

      XSS不同于普通的針對(duì)網(wǎng)站或者服務(wù)器的攻擊,是一種危害較大、較難防范并且隱蔽的攻擊方式.由于不易引起網(wǎng)站開發(fā)者的注意和重視,XSS攻擊才會(huì)對(duì)網(wǎng)站的訪問者造成非常大的安全威脅,所以XSS漏洞和攻擊的防范不僅需要網(wǎng)站開發(fā)者的重視,也需要瀏覽器的支持,以及用戶安全意識(shí)的提高.

      [1]達(dá)斯孟,陸永忠,寧峰.客戶端跨站腳本攻擊的分層防御策略[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2010(02).

      [2]陳建青,張玉清.Web跨站腳本漏洞檢測(cè)工具的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2010(06).

      [3]羅來曦,朱漁.XSS跨站腳本攻擊方法初探[J].宜春學(xué)院學(xué)報(bào),2009(06).

      [4]孫握瑜,張業(yè)睿.跨站腳本攻擊原理與防范方法研究[J].內(nèi)江科技,2010(05).

      [5]趙玉龍,張旋,劉夢(mèng)瑤,李沁蕾.跨站腳本攻擊實(shí)踐及防范[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2010(07).

      TP39

      A

      1008-7974(2012)08-0027-03

      2012-03-05

      王志春(1976-),男,陜西洋縣人,河西學(xué)院信息技術(shù)中心講師.

      (責(zé)任編輯:王前)

      猜你喜歡
      腳本攻擊者瀏覽器
      酒駕
      基于微分博弈的追逃問題最優(yōu)策略設(shè)計(jì)
      安奇奇與小cool 龍(第二回)
      反瀏覽器指紋追蹤
      電子制作(2019年10期)2019-06-17 11:45:14
      數(shù)據(jù)庫系統(tǒng)shell腳本應(yīng)用
      正面迎接批判
      愛你(2018年16期)2018-06-21 03:28:44
      快樂假期
      環(huán)球?yàn)g覽器
      再見,那些年我們嘲笑過的IE瀏覽器
      有限次重復(fù)博弈下的網(wǎng)絡(luò)攻擊行為研究
      潮安县| 连山| 汝南县| 丰台区| 合作市| 龙井市| 和平县| 临西县| 乌恰县| 黑山县| 娄底市| 临安市| 云浮市| 平湖市| 镶黄旗| 普兰县| 新蔡县| 尚志市| 伊金霍洛旗| 连南| 望江县| 吉安县| 喀喇沁旗| 若尔盖县| 曲沃县| 高雄市| 全椒县| 亳州市| 司法| 长沙县| 巴中市| 长春市| 高邑县| 宜章县| 资兴市| 于田县| 大宁县| 汾阳市| 育儿| 泸西县| 綦江县|