的雜志中,CERT警告大家:如果服務器對客戶的輸入不進行有效驗證,黑客就會輸入一些惡意的HTML代碼,當這些HTML代碼輸入是用于SCRIPT程序,他們就能利用它來進行破壞,如插入一些令人厭惡的圖片或聲音等,同時,也能干擾了客戶正確瀏覽網頁。">

国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關注微信公眾號

溫柔殺手-跨站Script攻擊
2005-12-17   

每當我們想到黑客的時候,黑客往往是這樣一幅畫像:一個孤獨的人,悄悄進入別人的服務器中,進行破壞或者竊取別人的秘密資料。也許他會更改我們的主頁,甚者會竊取客戶的信用卡號和密碼。另外,黑客還會攻擊訪問我們網站的客戶。與此同時,我們的服務器也成了他的幫兇。微軟稱這種攻擊為"跨站script"攻擊。而這種攻擊大多數都發生在網站動態產生網頁的時侯,但黑客的目標并不是你的網站,而是瀏覽網站的客戶。
跨站script攻擊的說明
在一本名為<<ADVISORY CA--2000-02>>的雜志中,CERT警告大家:如果服務器對客戶的輸入不進行有效驗證,黑客就會輸入一些惡意的HTML代碼,當這些HTML代碼輸入是用于SCRIPT程序,他們就能利用它來進行破壞,如插入一些令人厭惡的圖片或聲音等,同時,也能干擾了客戶正確瀏覽網頁。
我們知道,有些朋友曾經被誘導到一些可疑的免費網站,他們得到的僅僅是10到20個小的窗口,這些窗口常常伴隨著由JAVA 或 JAVASCRIPT生成的失效安鈕,這被稱為鼠標陷阱。關閉這些窗口是徒勞的,每當我們關閉一個窗口,又會有10幾個窗口彈出。這種情況常常發生在管理員沒在的時侯發生。鼠標事件是黑客利用跨站SCRIPT方法攻客戶的典型范例。
惡意的標簽和SCRIPT不單純的惡作劇,他們甚至可以竊取資料和搗毀系統。一個聰明的甚至是不夠聰明的黑客都能夠使用SCRIPT干擾或者改變服務器數據的輸入。利用SCRIPT代碼也能攻擊客戶系統,讓你的硬盤盡損。而且你要知道,在你一邊使用服務器的時候,黑客的SCRIPT也正在你服務器里安全的地方運行著的呀!如果客戶對你的服務器非常信認,同樣他們也會信任那些惡意的SCRIPT代碼。甚至這個代碼是以〈SCRIPT〉或者〈OBJECT〉的形式來自黑客的服務器。
即使使用了防火墻(SSL)也不能防止跨站SCRIPT的攻擊。那是因為如果生成惡意SCRIPT代碼的設備也使用了SSL,我們服務器的SSL是不能辨別出這些代碼來的。我們難道就這樣把客戶曾經那么信任的網站拱手讓給黑客嗎?而且有這種破壞的存在,會讓你網站名譽盡損的。
一、跨站SCRIPT攻擊示例:
根據CERT的資料,動態輸入大致有這幾種形式:URL參數,表格元素,COOKISE以及數據請求。讓我們來分析一下,這個只有兩個頁面的網站,網站名為: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>
當你正常常輸入文字時,一切都很正常。如果你輸入Script代碼:<SCRIPT>alert('Hello.';</script>,JavaScript警告標簽就會彈出來:
在你下一次訪問時,這個警示標簽同樣會出現;這是因為這個Script代碼在你第一次訪問的時后就已經留在cookie中了。這是一個簡單的跨站攻擊的范例。
如果你認為這是一個特殊情況,你也不妨到網上別的地方看看,親自試一下。我曾經對一些大型的政府網站、教育網站以及商業網站進行過測試,他們當中的確有部分出現了以上所說的情況,我甚至發現了我經常使用信用卡的網站也居然對輸入不進行任何過濾,想想真是可怕。
二、 用E-Mail進行跨站Script攻擊
跨站script攻擊用在列表服務器,usenet服務器和郵件服務器來得特別容易。下面還是以MyNiceSite.com網站為例進行說明。由于你經常瀏覽這個網站,它的內容也的確讓你愛不愛不釋手,因此在不知不覺中你就把瀏覽器的改成了總是信任這個動態網站內容的設置。
MyNiceSite.com網站總是通過出售征訂它們Email信件的郵箱地址來獲得收入,這的確是一種不太好的辦法。于是我買了它的一份郵箱地址。并發了大量的郵件給你們。在信中我告訴你們盡快訪問這個網 站,并檢查你們帳戶使用的最新情況。為了讓你們感到方便,我在這信中也作了鏈接。我在這鏈接URL中的username參數中舔加了script代碼。有些客戶在不知不覺中就點擊了這個鏈接,也就是說上了我的當(如圖),同時我也從中得到了好處:
它是這樣工作的,當你點擊這個鏈接的時后,在鏈接里的script代碼就會引導你所用瀏覽器去下載我的JavaScript程序并執行它。我的Script檢查到你使用的是IE瀏覽器后,就著手下載ActiceX控件 particularlyNasty.dll。因為之前你已經把這個網站的內容認為總是安全的,這樣,我的script代碼和Active 控件就能在你機器上自由自在的運行了。
三、 Activex攻擊說明
在討論ActiveX時,CERT和微軟都沒提到跨站script方法所帶來的的危險。W3C在<<安全常見問題解答>>中對ActiveX的安全問題作了比較詳盡的說明。Java applet對系統的控制受到嚴格限制。SUN開發它時就規定,只有那些對系統的安全不構成威脅的操作才被允許運行。
在另一方面,ActiveX對系統的操作就沒有嚴格地被限制。如果一但被下載,就可以象安裝的可執行程序一樣做他們想干的事情。針對這一特點IE瀏覽器也作了某些限制,如對于那些不安全的站點,在它的默認設置中就會不允許你進行下載或者會給你警告的提示。正在基于ActiveX進行開發的公司,如VeriSign公司,它們對ActiveX控件都給編了號。當你在下載控件的時后,IE瀏覽器會給你警告并顯示它的可信籟程度。由用戶決定是否相信這個控件。這樣一來系統的安全性就增加了。
但是,對于那些沒有多少經驗的用戶來說,他們往往不自覺地對原來的設置進行了修改,讓這些控件在沒有任何提示的情況下就下載了。另外,對一個新手來說,即使在有提示的情況下也會不加思索地下載那些沒作任何標記的控件。在我們所舉的例子中,由于你對該站點的信任,改了瀏覽器的設置,這樣,ActiveX控件在不經過任何提示的情況下就下載,并在你的機器上不知不覺地開始運行。
四、16進制編碼的ActiveX Script 攻擊
要把用心不良的標簽和script區分出來是一件非常困難的事。Script還可以16進制的形式把自己藏起來。讓我們看看下面這個E-mail范例好嗎?它是以16進制的形式被發送出去的:
這幾乎是一封完整的郵件,里面包含了以16進制偽造的URL參數:sender=mynicesite.com。當用戶點擊鏈接時,用戶的瀏覽器就會直接開始第一例所說的處理過程而彈出警告窗口。
第二部分:跨站Script攻擊的防犯
一、如何避免服務器受到跨站Script的攻擊
值得慶幸的是,防止跨站Script攻擊的技術正趨于完善。目前可采取這幾種方式來防止跨站Script的攻擊:
1.對動態生成的頁面的字符進行編碼
2.對輸入進行過濾和限制
3.使用HTML和URL編碼
1.對動態生成的頁面的字符進行編碼
你們首先要采用的就是對動態生成頁面的字符進行編碼,你必須這樣做,不然黑客很有可能更改你的字符設置而輕易地通過你的防線。如果我們的網站是個英語網站,這樣只要我們把字符編碼設成拉丁字符ISO-8859-1就行了,具體情況如下:
<META http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
2.過濾和限制所有輸入的數據
這是防止跨站Script的攻擊的第二種方法,在進行登錄的時侯,不要讓那些特殊的字符也輸入進去。因此我們可在ONSUBMIT方法中加入JAVASCRIPT程序來完成這個功能。在本例中我們限制最多只能輸入15個字符。這樣可以阻止那些較長的script的輸入。
在<<Knowledge Base Article QA252985>>這本書中微軟提供了一個簡短的Javascript程序來完成對輸入數據的過濾。我們也根據具體情況引進了這段代碼用于我們的例子中,如:
function checkForm() {
document.forms[0].userName.value = _
RemoveBad(document.forms[0].userName.value);
return true;
}
// MICROSOFT'S CODE
function RemoveBad(strTemp) {
strTemp = strTemp.replace(/\</\>/\"/\'/\%/\;/\(/\)/\&/\+/\-/g,"");
return strTemp;
}
用這個辦法,可以過濾在輸入中含有的這些字符:
% < > [ ] { } ; & + - " '( )
3.使用HTML和URL編碼
盡管使用上面所說的過濾和限制輸入的辦法是一種非常重要用防御手段,但它對我的這種采用郵件方式的攻擊還是無能為力。因為我把URL的參數直接放在郵件中。針對這種情況我們不得不采取一種更有力的安全措施。如果我們用的ASP,解決起來相對說來要容易得多。只要對動態生成的網頁總進行HTML和URL編碼就行了。針對我們例子中的情況,在第一輸入頁中我們對redirect URL作了如下改動:
strRedirectUrl = strRedirectUrl & _
server.URLEncode(Response.Cookies("userName"))
在執行頁中我們加入:
strUserName =server.HTMLEncode(Request.QueryString("userName"))

strUserName =server.HTMLEncode(Request.Form("userName"))
微軟推薦對所有動態頁面的輸入和輸出都應進行編碼。甚至在對數據庫數據的存入和取出也應如此。這樣你就能在很大程度上避免跨站script的攻擊。
要做到這些還要在Page1.asp中加入:
<%@ Language=VBScript %>
<% If Request.Cookies("userName") <> "" Then
'redirect if detect the cookie
Dim strRedirectUrl
strRedirectUrl = "page2.asp?userName="
strRedirectUrl = strRedirectUrl & _
server.URLEncode(Request.Cookies("userName"))
Response.Redirect(strRedirectUrl)
Else %>
<HTML>
<HEAD>
<META http-equiv="Content-Type"content="text/html; charset=ISO-8859-1">
<TITLE>MyNiceSite.com Home Page</TITLE>
</HEAD>
<SCRIPT LANGUAGE="javascript">
<!--
function checkForm() {
document.forms[0].userName.value =
RemoveBad(document.forms[0].userName.value);
return true;
}
//******************************************************
//Programmer: NOT ORIGINAL CODE - COMES FROM MICROSOFT
//Code Source: Microsoft Knowledge Base Article Q25z985
//Description: Removes bad characters.
//******************************************************
function RemoveBad(strTemp) {
strTemp =strTemp.replace(/\</\>/\"/\'/\%/\;/\(/\)/\&/\+/\-/g, "");
return strTemp;
}
//-->
</SCRIPT>
<BODY>
<BR>
<H2>MyNiceSite.com</H2>
<BR>
<FORM method="post"action="page2.asp" onsubmit="return checkForm();">
Enter your MyNiceSite.com username:
<INPUT type="text"name="userName" width="10" maxwidth="10">
<INPUT type="submit"name="submit" value="submit">
</FORM>
</BODY>
</HTML>
<% end if %>
Page2.asp中加如:
<%@ Language=VBScript %>
<% Dim strUserName
If Request.QueryString("userName")<>"" Then
strUserName =server.HTMLEncode(Request.QueryString("userName"))
Else
Response.Cookies("userName") =Request.Form("userName")
strUserName = server.HTMLEncode(Request.Form("userName"))
End If %>
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
</HEAD>
<BODY>
<H3 align="center">Hello: <%= strUserName %></H3>
</BODY>
</HTML>
現在由于這種攻擊遭到有效的防制。那于那些惡意的標簽和Script被編碼,他們就被以文字的形式顯現了出來,如下圖:
我們也可增加一個IIS組件用于過濾所有從動態輸入中的特殊字符。對于那些已經做好的網站,采用這種辦法來防止跨站script的攻擊來得非常容易。我們的這個控件能攔截來自ASP頁面的REQUEST目標,可對表格,cookie,請求字串和程序的內容進行檢測:
我們也可以通過編寫log文件的方法把統計數據加入這個組件中。每當一個客戶輸入一個非法字符時,這個組件會記下它的IP地址和時間。詳情請見Doug Dean的<<Roll your Own IIS Application on ASPToday>>一文。
我們只需采取一些簡單的步聚就能有效地阻止跨站script的攻擊。除了以上所說的三種方法外,微軟和CERT還強烈推薦使用一種他們稱之為"sanity check"的方法。例如,假設有個輸入窗口只允許輸入數字,我們就給它做個限定,只允許0-9數字的輸入。微軟和CERT所采用的這種對輸入的字符進行限定的辦法要比單獨的采用過濾特殊字符要好得多。采用了這些措施后你就能讓那些參觀你網站的客戶在訪問你網站時受到保護。
二、免受黑客攻擊我們瀏覽器方法:
當你在網上漫游的時侯,怎樣來避免受到攻擊呢?微軟和CERT建議不要在網上胡碰亂撞。針對這種情況,PC雜志一個欄目的名叫John Dvorack作者作了一個饒有興趣的回答。他認為這是微軟公司一起有預謀的行為:就是用來恐嚇網上沖浪的人到那些安全的站點去瀏覽,如美國在線和MSN.com網站。
在我們所舉的例子中,即使你不在網上胡亂游蕩,也不能避免在網上遭到黑客的襲擊。具有諷刺意義的是,大多數的危險都來自于我們最信任的網站。如果要讓網站一定不出問題,你只好不下載任何動態內容或者任何cookie。預知詳情請參閱瀏覽器的相關資料。
微軟也警告你們應把瀏覽器的Active Script設置成嚴格限制的狀態并把Email也設成嚴格限制的接收模式。在點擊郵件中的鏈接時,一定要小心。如需進一步了解情況請參閱一本名叫<<Microsoft's Knowledge Base Article Q253117>>的書。為了以防萬一,你最好是多一點上網經驗,并且時刻要小心謹慎。
結論
如果你是以前的UNIX程序開發人員,你也許不會知道跨站script意謂著什么。你知道許多站點的管理人員登錄的用戶名和密碼分別為root,root.同樣許多數據庫管理員的名稱和密碼分別為sa,password。你也知道Webzine(如Phrack 和 Alt2600),依據他們所提供的方法能讓你一步步地知道某臺服務器的弱點。在這種硬件上,你也知道許多網站的數據庫服務器和web服務器都沒有進行自我保護。一但遭遇黑客,機器就得癱瘓。
盡管我們很容易采取防止系統受到黑客的攻擊的措施,但我們的系統是一直暴露在黑客面前的。我們完全有理由相信下一年還會出現一些新的安全漏洞。在CERT公司John Howard先生指導下完成的一篇論文中曾提到:"跟據目前的研究顯示,每個在英特網上具有域名的網站平均一年被黑客至少攻擊一次。"
對服務器來說那怕只是一次這種攻擊也是不能承受的。跨站Script攻擊是黑客可采用的另一種方法。但我們只要進行以上所說的一些簡單的處理就能防止這種形式攻擊的發生。


熱詞搜索:

上一篇:PHPWIND1.3.6論壇漏洞分析
下一篇:SQL注入的不常見方法

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
亚洲国产天堂网精品网站| 亚洲综合首页| 亚洲精品欧美专区| 久久久久久黄| 欧美视频一区二区三区在线观看| 在线视频精品| 在线观看视频亚洲| 国产精品一区二区三区久久| 久久精品盗摄| 亚洲另类在线一区| 国产精品色一区二区三区| 久久久久九九九九| 亚洲裸体在线观看| 狠狠爱www人成狠狠爱综合网 | 亚洲视频播放| 噜噜噜久久亚洲精品国产品小说| 亚洲欧美另类中文字幕| 欧美专区18| 中文亚洲欧美| 久久久蜜桃精品| 亚洲美女av电影| 欧美激情按摩| 国产精品资源| 国产日韩专区在线| 欧美日本国产视频| 欧美国产成人在线| 欧美激情欧美狂野欧美精品| 欧美v亚洲v综合ⅴ国产v| 国产热re99久久6国产精品| 久久国内精品视频| 欧美一区免费视频| 亚洲无线一线二线三线区别av| 久久国产日本精品| 国产日产欧美一区| 亚洲精品小视频在线观看| 亚洲伊人网站| 欧美中文字幕在线观看| 久久精品一本久久99精品| 免费在线亚洲欧美| 欧美亚洲第一区| 亚洲国产成人不卡| 日韩系列在线| 在线亚洲国产精品网站| 亚洲欧美日韩在线播放| 久久手机免费观看| 国产精品久久久久久久久| 国内精品久久久久影院色| 亚洲欧洲视频在线| 亚洲福利视频免费观看| 亚洲自拍偷拍网址| 欧美精彩视频一区二区三区| 国产日本精品| 亚洲一区欧美二区| 欧美激情第8页| 曰韩精品一区二区| 久久国产精品久久久久久| 欧美日韩国产综合久久| 国产一区二区中文| 欧美在线观看天堂一区二区三区| 免费视频一区二区三区在线观看| 国产欧美一区二区精品忘忧草| 一本久道久久综合中文字幕| 久久这里只有| 精品成人国产| 久久一区二区三区国产精品| 狠狠色丁香久久综合频道| 久久9热精品视频| 在线观看中文字幕亚洲| 理论片一区二区在线| 在线成人免费视频| 欧美激情综合色综合啪啪| 99re热精品| 国产一区二区福利| 欧美国产精品劲爆| 亚洲桃色在线一区| 国产午夜亚洲精品羞羞网站| 免费在线成人av| 亚洲综合清纯丝袜自拍| 在线观看精品视频| 欧美日韩国产成人在线| 欧美在线视频免费播放| 亚洲精品日产精品乱码不卡| 国产精品久久久久影院亚瑟| 久久视频在线免费观看| 亚洲一区二区三| 亚洲精品字幕| 日韩系列在线| 亚洲国产欧美在线| 国产精品视频一区二区高潮| 欧美成人蜜桃| 猛干欧美女孩| 亚洲综合不卡| 亚洲日本激情| 影音先锋成人资源站| 国产精品久久久久久久久久久久久久 | 欧美亚洲免费电影| 亚洲人成网站色ww在线| 国产视频一区二区三区在线观看| 欧美在线91| 亚洲国产专区校园欧美| 国产一区二区视频在线观看| 欧美日韩精品免费观看视频| 欧美一区二区女人| 一本高清dvd不卡在线观看| 亚洲精品综合精品自拍| 亚洲美女在线观看| 日韩小视频在线观看专区| 夜夜嗨网站十八久久| 午夜精品久久久久久久| 亚洲欧美综合一区| 久久视频在线视频| 久久综合国产精品| 欧美激情综合五月色丁香| 欧美久久九九| 国产精品尤物| 亚洲电影毛片| 亚洲欧美日产图| 欧美一级二级三级蜜桃| 久久久久久久久久久一区 | 午夜精品福利在线| 亚洲欧美激情诱惑| 久久久久久久成人| 欧美~级网站不卡| 欧美区二区三区| 欧美激情久久久久| 国产精品国产三级国产a| 国产综合色在线视频区| 亚洲人体影院| 一本色道久久| 亚洲制服av| 久久综合色88| 国产精品一区二区三区观看| 亚洲区在线播放| 久久久久久伊人| 海角社区69精品视频| 亚洲一区三区视频在线观看| 久久久噜噜噜久久人人看| 国产精品区一区二区三区| 中文有码久久| 欧美视频在线观看免费网址| 亚洲日本乱码在线观看| 久久频这里精品99香蕉| 影音先锋日韩精品| 欧美日韩999| 亚洲欧美久久久久一区二区三区| 欧美三级午夜理伦三级中文幕 | 久久免费一区| 曰韩精品一区二区| 欧美福利视频| 亚洲在线成人| 亚洲国产成人在线视频| 欧美精品999| 中日韩午夜理伦电影免费| 国产欧美日韩亚洲一区二区三区| 久久精彩免费视频| 亚洲乱码国产乱码精品精98午夜| 欧美精品一区在线观看| 欧美亚洲在线视频| 亚洲国产另类 国产精品国产免费| 久久久精品999| 在线精品国产欧美| 欧美大胆人体视频| 亚洲一区二区精品在线| 国产在线精品一区二区夜色| 老司机精品福利视频| 夜久久久久久| 亚洲国产欧美日韩精品| 国产欧美在线| 尤物yw午夜国产精品视频| 免费在线亚洲欧美| 欧美一区亚洲| 亚洲一区免费网站| 亚洲高清影视| 国产情侣一区| 国产精品捆绑调教| 欧美日韩99| 欧美午夜视频在线| 欧美人与禽猛交乱配视频| 欧美另类在线观看| 欧美日韩免费视频| 欧美日韩一区二区三区在线观看免| 久久精品欧美日韩| 欧美在线一区二区| 久久婷婷人人澡人人喊人人爽| 久久av红桃一区二区小说| 欧美一区激情| 久久综合五月| 欧美精品少妇一区二区三区| 国产三区精品| 国产精品亚洲视频| 国内成+人亚洲+欧美+综合在线| 国产一区在线免费观看| 狠狠色香婷婷久久亚洲精品| 狠狠色狠狠色综合日日小说| 韩国av一区二区| 日韩网站在线| 久久久亚洲一区| 国产精品激情av在线播放| 国产亚洲精品bt天堂精选| 亚洲激情在线观看视频免费|