亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

溫柔的殺手—跨站ASP Script攻擊

2019-11-18 19:18:17
字體:
來源:轉載
供稿:網友

  作者: BIBI

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

  跨站script攻擊的說明

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

  我們知道,有些朋友曾經被誘導到一些可疑的免費網站,他們得到的僅僅是10到20個小的窗口,這些窗口常常伴隨著由javaJavascript生成的失效安鈕,這被稱為鼠標陷阱。關閉這些窗口是徒勞的,每當我們關閉一個窗口,又會有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 %>

 ?。糎TML>

 ?。糎EAD>

 ?。糡ITLE>MyNiceSite.com Home Page</TITLE>

  </HEAD>

 ?。糂ODY>

 ?。糎2>MyNiceSite.com</H2>

 ?。糉ORM method="post" action="page2.asp">

  Enter your MyNiceSite.com username:

 ?。糏NPUT 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 %>

 ?。糎TML>

 ?。糎EAD></HEAD>

 ?。糂ODY>

 ?。糎3 align="center">Hello: <%= strUserName %> </H3>

 ?。?BODY>

  </HTML>

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

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

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

  每當我們想到黑客的時候,黑客往往是這樣一幅畫像:一個孤獨的人,悄悄進入別人的服務器中,進行破壞或者竊取別人的秘密資料。也許他會更改我們的主頁,甚者會竊取客戶的信用卡號和密碼。另外,黑客還會攻擊訪問我們網站的客戶。與此同時,我們的服務器也成了他的幫兇。微軟稱這種攻擊為“跨站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中了。這是一個簡單的跨站攻擊的范例。

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

  第二部分:跨站Script攻擊的防犯


  一、如何避免服務器受到跨站Script的攻擊

  值得慶幸的是,防止跨站Script攻擊的技術正趨于完善。目前可采取這幾種方式來防止跨站Script的攻擊:

  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先生指導下完成的一篇論文中曾提到:“跟據目前的研究顯示,每個在英特網上具有域名的網站平均一年被黑客至少攻擊一次。”

  對服務器來說那怕只是一次這種攻擊也是不能承受的??缯維cript攻擊是黑客可采用的另一種方法。但我們只要進行以上所說的一些簡單的處理就能防止這種形式攻擊的發生。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品揄拍一区二区| 在线精品国产欧美| 国产在线精品一区免费香蕉| 亚洲成人黄色网址| 欧美乱大交做爰xxxⅹ性3| 亚洲精品成人久久久| 亚洲精品国产品国语在线| 国产视频精品免费播放| 久久精品成人欧美大片古装| 在线播放国产精品| 亚洲自拍小视频| 色视频www在线播放国产成人| 国产精品老女人视频| 日韩激情av在线免费观看| 久久精品国产亚洲| 欧美高跟鞋交xxxxhd| 欧美疯狂性受xxxxx另类| 日韩欧美中文第一页| 亚洲欧美日韩图片| 色综合色综合网色综合| 久久久亚洲国产天美传媒修理工| 色偷偷888欧美精品久久久| 日韩av电影在线播放| 日韩精品极品在线观看播放免费视频| 668精品在线视频| 高清一区二区三区四区五区| 国产精品日韩电影| 欧美日韩在线视频一区| 久久久精品国产| 日韩欧美中文字幕在线播放| 成人a在线视频| 久久精品中文字幕电影| 亚洲人成绝费网站色www| 国产精品久久久久久久久久小说| 97免费在线视频| 亚洲国产精品久久久久秋霞不卡| 国产精品成人一区| 日韩欧美精品免费在线| 国产视频久久久久久久| 久久久亚洲国产天美传媒修理工| 国产成人精品a视频一区www| www.欧美精品一二三区| 国产91九色视频| 久久99精品久久久久久噜噜| 亚洲精品久久久久久久久久久久久| 色综合久久中文字幕综合网小说| 午夜精品久久久99热福利| 亚洲人成电影在线观看天堂色| 91久久久久久久久久久久久| 欧美午夜精品久久久久久浪潮| 一个人看的www欧美| 欧美xxxx做受欧美.88| 在线视频欧美性高潮| 欧美成人手机在线| 国产做受69高潮| 国产91精品视频在线观看| 欧美成人精品一区二区| 91在线高清免费观看| 日韩中文字幕网址| 国产视频亚洲视频| 黑人精品xxx一区一二区| 美日韩丰满少妇在线观看| 亚洲最大av网| 日韩一区二区三区xxxx| 色综合久久天天综线观看| 欧美激情奇米色| 97人人模人人爽人人喊中文字| 国产日韩视频在线观看| 欧美不卡视频一区发布| 欧美国产日韩一区二区三区| 日韩av第一页| 亚洲国产精品推荐| 欧美性猛交xxxx免费看久久久| 视频在线观看99| 亚洲美女激情视频| 欧美大胆a视频| 欧美大肥婆大肥bbbbb| 欧美一区三区三区高中清蜜桃| 亚洲美女www午夜| 亚洲成人av在线播放| 欧美日韩999| 亚洲欧美在线免费观看| 91精品中国老女人| 97av在线播放| 亚洲色图美腿丝袜| 亚洲成成品网站| 国产欧美日韩亚洲精品| 亚洲第一国产精品| 91在线视频九色| 久久精品国产成人精品| 欧美中文字幕第一页| 久久天天躁夜夜躁狠狠躁2022| 成人免费网视频| 福利二区91精品bt7086| 黄色成人av在线| 成人信息集中地欧美| 亚洲人成五月天| 亚洲人成绝费网站色www| 欧美性69xxxx肥| 欧美另类第一页| 日韩美女福利视频| 久久成人精品电影| 国产一区二区三区高清在线观看| 久久久久一本一区二区青青蜜月| 九九精品在线视频| 久久综合国产精品台湾中文娱乐网| 欧美成人免费在线视频| 国产精品69久久| 亚洲激情在线观看视频免费| 亚洲无亚洲人成网站77777| 国产999精品| 亚洲成人激情小说| 欧美黑人一区二区三区| 欧美乱大交xxxxx另类电影| 久久精品国产99国产精品澳门| 日韩女在线观看| 国产一区私人高清影院| 欧美精品免费看| 欧美乱大交xxxxx| 欧美日韩在线观看视频小说| 久久精品夜夜夜夜夜久久| 亚洲精品久久久久久久久久久| 成人久久一区二区三区| 欧美一性一乱一交一视频| 国产亚洲精品美女久久久久| 91中文精品字幕在线视频| 亚洲一区国产精品| 国产日韩换脸av一区在线观看| 亚洲国产成人在线视频| 国产91免费观看| 91午夜理伦私人影院| 亚洲毛茸茸少妇高潮呻吟| 精品日韩中文字幕| 在线中文字幕日韩| 国产精品久久久久久亚洲影视| 国产精品扒开腿做爽爽爽的视频| 国产精品视频精品视频| 国产精品高潮呻吟久久av无限| 国产精品 欧美在线| 国产精品成人一区二区| 亚洲精品一区二三区不卡| 亚洲精品成人av| 久久久精品视频成人| 国产精品va在线| 国产噜噜噜噜噜久久久久久久久| 97国产在线视频| 日韩av有码在线| 9.1国产丝袜在线观看| 91黑丝高跟在线| 久久免费成人精品视频| 亚洲九九九在线观看| 亚洲经典中文字幕| 国产精品美女999| 欧美疯狂xxxx大交乱88av| 国产情人节一区| 日韩免费在线电影| 欧美中文在线免费| 91精品久久久久| 成人国产精品免费视频| 久久久久久国产精品三级玉女聊斋| 久久精品2019中文字幕| 亚洲a∨日韩av高清在线观看| 欧美激情三级免费| 国产精品人成电影在线观看|