當(dāng)前位置: 首頁IT技術(shù) → 關(guān)于跨站Script攻擊的介紹說明

關(guān)于跨站Script攻擊的介紹說明

更多

 本文將會給大家介紹到關(guān)于跨站Script攻擊的介紹說明和防范,希望對各位建站的朋友有所幫助。

  第一部分:跨站Script攻擊

  每當(dāng)我們想到黑客的時候,黑客往往是這樣一幅畫像:一個孤獨的人,悄悄進(jìn)入別人的服務(wù)器中,進(jìn)行破壞或者竊取別人的秘密資料。也許他會更改我們的主頁,甚者會竊取客戶的信用卡號和密碼。另外,黑客還會攻擊訪問我們網(wǎng)站的客戶。與此同時,我們的服務(wù)器也成了他的幫兇。微軟稱這種攻擊為“跨站script”攻擊。而這種攻擊大多數(shù)都發(fā)生在網(wǎng)站動態(tài)產(chǎn)生網(wǎng)頁的時侯,但黑客的目標(biāo)并不是你的網(wǎng)站,而是瀏覽網(wǎng)站的客戶。

  跨站script攻擊的說明

    在一本名為<<ADVISORY CA--2000-02>>的雜志中,CERT警告大家:如果服務(wù)器對客戶的輸入不進(jìn)行有效驗證,黑客就會輸入一些惡意的HTML代碼,當(dāng)這些HTML代碼輸入是用于SCRIPT程序,他們就能利用它來進(jìn)行破壞,如插入一些令人厭惡的圖片或聲音等,同時,也能干擾了客戶正確瀏覽網(wǎng)頁。

    我們知道,有些朋友曾經(jīng)被誘導(dǎo)到一些可疑的免費網(wǎng)站,他們得到的僅僅是10到20個小的窗口,這些窗口常常伴隨著由Java 或 java script生成的失效安鈕,這被稱為鼠標(biāo)陷阱。關(guān)閉這些窗口是徒勞的,每當(dāng)我們關(guān)閉一個窗口,又會有10幾個窗口彈出。這種情況常常發(fā)生在管理員沒在的時侯發(fā)生。鼠標(biāo)事件是黑客利用跨站SCRIPT方法攻客戶的典型范例。

    惡意的標(biāo)簽和SCRIPT不單純的惡作劇,他們甚至可以竊取資料和搗毀系統(tǒng)。一個聰明的甚至是不夠聰明的黑客都能夠使用SCRIPT干擾或者改變服務(wù)器數(shù)據(jù)的輸入。利用SCRIPT代碼也能攻擊客戶系統(tǒng),讓你的硬盤盡損。而且你要知道,在你一邊使用服務(wù)器的時候,黑客的SCRIPT也正在你服務(wù)器里安全的地方運行著的呀!如果客戶對你的服務(wù)器非常信認(rèn),同樣他們也會信任那些惡意的SCRIPT代碼。甚至這個代碼是以〈SCRIPT〉或者〈OBJECT〉的形式來自黑客的服務(wù)器。

    即使使用了防火墻(SSL)也不能防止跨站SCRIPT的攻擊。那是因為如果生成惡意SCRIPT代碼的設(shè)備也使用了SSL,我們服務(wù)器的SSL是不能辨別出這些代碼來的。我們難道就這樣把客戶曾經(jīng)那么信任的網(wǎng)站拱手讓給黑客嗎?而且有這種破壞的存在,會讓你網(wǎng)站名譽(yù)盡損的。
  
  
  一、跨站SCRIPT攻擊示例:

    根據(jù)CERT的資料,動態(tài)輸入大致有這幾種形式:URL參數(shù),表格元素,COOKISE以及數(shù)據(jù)請求。讓我們來分析一下,這個只有兩個頁面的網(wǎng)站,網(wǎng)站名為:

  MYNICESITE.COM。第一頁使用一張表格或COOKIE來獲取用戶名:

  <%@ Language=VBScript %>
  <% If Request.Cookies("userName") <> "" Then
  Dim strRedirectUrl
  strRedirectUrl = "page2.ASP?userName="
  strRedirectUrl = strRedirectUrl & Response.Cookies("userName")
  Response.Redirect(strRedirectUrl)
  Else %>
  <HTML>
  <HEAD>
  <TITLE>MyNiceSite.com Home Page</TITLE>
  </HEAD>
  <BODY>
  <H2>MyNiceSite.com</H2>
  <FORM method="post" action="page2.asp">
  Enter your MyNiceSite.com username:
  <INPUT type="text" name="userName">
  <INPUT type="submit" name="submit" value="submit">
  </FORM>
  </BODY>
  </HTML>
  <% End If %>
  
  第二頁返回用戶名以示歡迎:
  <%@ Language=VBScript %>
  <% Dim strUserName
  If Request.QueryString("userName")<> "" Then
  strUserName = Request.QueryString("userName")
  Else
  Response.Cookies("userName") = Request.Form("userName")
  strUserName = Request.Form("userName")
  End If %>
  <HTML>
  <HEAD></HEAD>
  <BODY>
  <H3 align="center">Hello: <%= strUserName %> </H3>
  </BODY>
  </HTML>

    當(dāng)你正常常輸入文字時,一切都很正常。如果你輸入Script代碼:<SCRIPT>alert('Hello.';</script>,java script警告標(biāo)簽就會彈出來:

    在你下一次訪問時,這個警示標(biāo)簽同樣會出現(xiàn);這是因為這個Script代碼在你第一次訪問的時后就已經(jīng)留在cookie中了。這是一個簡單的跨站攻擊的范例。

    如果你認(rèn)為這是一個特殊情況,你也不妨到網(wǎng)上別的地方看看,親自試一下。我曾經(jīng)對一些大型的政府網(wǎng)站、教育網(wǎng)站以及商業(yè)網(wǎng)站進(jìn)行過測試,他們當(dāng)中的確有部分出現(xiàn)了以上所說的情況,我甚至發(fā)現(xiàn)了我經(jīng)常使用信用卡的網(wǎng)站也居然對輸入不進(jìn)行任何過濾,想想真是可怕。

  二、 用E-Mail進(jìn)行跨站Script攻擊

    跨站script攻擊用在列表服務(wù)器,usenet服務(wù)器和郵件服務(wù)器來得特別容易。下面還是以MyNiceSite.com網(wǎng)站為例進(jìn)行說明。由于你經(jīng)常瀏覽這個網(wǎng)站,它的內(nèi)容也的確讓你愛不愛不釋手,因此在不知不覺中你就把瀏覽器的改成了總是信任這個動態(tài)網(wǎng)站內(nèi)容的設(shè)置。

   MyNiceSite.com網(wǎng)站總是通過出售征訂它們Email信件的郵箱地址來獲得收入,這的確是一種不太好的辦法。于是我買了它的一份郵箱地址。并發(fā)了大量的郵件給你們。在信中我告訴你們盡快訪問這個網(wǎng) 站,并檢查你們帳戶使用的最新情況。為了讓你們感到方便,我在這信中也作了鏈接。我在這鏈接URL中的username參數(shù)中舔加了script代碼。有些客戶在不知不覺中就點擊了這個鏈接,也就是說上了我的當(dāng)(如圖),同時我也從中得到了好處:

    它是這樣工作的,當(dāng)你點擊這個鏈接的時后,在鏈接里的script代碼就會引導(dǎo)你所用瀏覽器去下載我的java script程序并執(zhí)行它。我的Script檢查到你使用的是IE瀏覽器后,就著手下載ActiceX控件 particularlyNasty.dll。因為之前你已經(jīng)把這個網(wǎng)站的內(nèi)容認(rèn)為總是安全的,這樣,我的script代碼和Active 控件就能在你機(jī)器上自由自在的運行了。

  三、 Activex攻擊說明

    在討論ActiveX時,CERT和微軟都沒提到跨站script方法所帶來的的危險。W3C在<<安全常見問題解答>>中對ActiveX的安全問題作了比較詳盡的說明。Java Applet 對系統(tǒng)的控制受到嚴(yán)格限制。SUN開發(fā)它時就規(guī)定,只有那些對系統(tǒng)的安全不構(gòu)成威脅的操作才被允許運行。

    在另一方面,ActiveX對系統(tǒng)的操作就沒有嚴(yán)格地被限制。如果一但被下載,就可以象安裝的可執(zhí)行程序一樣做他們想干的事情。針對這一特點IE瀏覽器也作了某些限制,如對于那些不安全的站點,在它的默認(rèn)設(shè)置中就會不允許你進(jìn)行下載或者會給你警告的提示。正在基于ActiveX進(jìn)行開發(fā)的公司,如VeriSign公司,它們對ActiveX控件都給編了號。當(dāng)你在下載控件的時后,IE瀏覽器會給你警告并顯示它的可信籟程度。由用戶決定是否相信這個控件。這樣一來系統(tǒng)的安全性就增加了。

    但是,對于那些沒有多少經(jīng)驗的用戶來說,他們往往不自覺地對原來的設(shè)置進(jìn)行了修改,讓這些控件在沒有任何提示的情況下就下載了。另外,對一個新手來說,即使在有提示的情況下也會不加思索地下載那些沒作任何標(biāo)記的控件。在我們所舉的例子中,由于你對該站點的信任,改了瀏覽器的設(shè)置,這樣,ActiveX控件在不經(jīng)過任何提示的情況下就下載,并在你的機(jī)器上不知不覺地開始運行。
  
  
  四、16進(jìn)制編碼的ActiveX Script 攻擊

    要把用心不良的標(biāo)簽和script區(qū)分出來是一件非常困難的事。Script還可以16進(jìn)制的形式把自己藏起來。讓我們看看下面這個E-mail范例好嗎?它是以16進(jìn)制的形式被發(fā)送出去的:

    這幾乎是一封完整的郵件,里面包含了以16進(jìn)制偽造的URL參數(shù):sender=mynicesite.com。當(dāng)用戶點擊鏈接時,用戶的瀏覽器就會直接開始第一例所說的處理過程而彈出警告窗口。

熱門評論
最新評論
發(fā)表評論 查看所有評論(1)
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)