ASP網路安全講述

來源:互聯網
上載者:User
安全|網路

一 前言 
  Microsoft Active Server Pages(ASP)是伺服器端指令碼編寫環境,使用它可以建立和運行動態、互動的 Web 伺服器應用程式。使用 ASP 可以組合 HTML 頁 、指令碼命令和 ActiveX 組件以建立互動的 Web 頁和基於 Web 的功能強大的應用程式。 
現在很多網站特別是電子商務方面的網站,在前台上大都用ASP來實現。以至於現在ASP在網站應用程式上很普遍。 
ASP是開發網站應用程式的快速工具,但是有些網站管理員只看到ASP的快速開發能力,卻忽視了ASP安全問題。ASP從一開始就一直受到眾多漏洞,後門的困擾,包括%81的噩夢,密碼驗證問題,IIS漏洞等等都一直使ASP網站開發人員心驚膽跳。 
本文試圖從開放了ASP服務的作業系統漏洞和ASP程式本身漏洞,闡述ASP安全問題,並給出解決方案或者建議。 
二 關鍵字 
  ASP,網路安全,IIS,SSL,加密。 
三 ASP工作機理 
  Active Server Page技術為應用開發商提供了基於指令碼的直觀、快速、高效的應用開發手段,極大地提高了開發的效果。在討論ASP的安全性問題之前,讓我們來看看ASP是怎麼工作的。ASP指令碼是採用明文(plain text)方式來編寫的。 
  ASP指令碼是一系列按特定文法(目前支援vbscript和jscript兩種指令碼語言)編寫的,與標準HTML頁面混合在一起的指令碼所構成的文字格式設定的檔案。當用戶端的終端使用者用WEB瀏覽器通過INTERNET來訪問基於ASP指令碼的應用時,WEB瀏覽器將向WEB伺服器發出HTTP請求。WEB伺服器分析、判斷出該請求是ASP指令碼的應用後,自動通過ISAPI介面調用ASP指令碼的解釋運行引擎(ASP.DLL)。ASP.DLL將從檔案系統或內部緩衝區擷取指定的ASP指令檔,接著就進行文法分析並解釋執行。最終的處理結果將形成HTML格式的內容,通過WEB伺服器"原路"返回給WEB瀏覽器,由WEB瀏覽器在用戶端形成最終的結果呈現。這樣就完成了一次完整的ASP指令碼調用。若干個有機的ASP指令碼調用就組成了一個完整的ASP指令碼應用。 
  讓我們來看看運行ASP所需的環境: 
Microsoft Internet Information Server 3.0/4.0/5.0 on NT Server 
Microsoft Internet Information Server 3.0/4.0/5.0 on Win2000 
Microsoft Personal Web Server on Windows 95/98 
  WINDOWS NT Option Pack所帶的Microsoft IIS提供了強大的功能,但是IIS在網路安全方面卻是比較危險的。因為很少有人會用Windows 95/98當伺服器,因此本文我更多的從NT中的IIS安全問題來探討。 
四 微軟自稱的ASP的安全優點 
  雖然我們本文的重點是探討ASP漏洞和後門,但是有必要談談ASP在網路安全方面的"優點",之所以加個"",是因為有時這些微軟宣稱的"優點"恰恰是其安全隱犯。 
  微軟稱ASP在網路安全方面一大優點就是使用者不能看到ASP的來源程式,從ASP的原理上看,ASP在服務端執行並解釋成標準的HTML語句,再傳送給用戶端瀏覽器。"屏蔽"來源程式能很好的維護ASP開發人員的著作權,試想你辛辛苦苦做了一個很優秀的程式,給人任意COPY,你會怎麼想?而且駭客還能分析你的ASP程式,挑出漏洞。更重要的是有些ASP開發人員喜歡把密碼,有特權的使用者名稱和路徑直接寫在程式中,這樣別人通過猜密碼,猜路徑,很容易找到攻擊系統的"入口"。但是目前已經發現了很多能查看ASP來源程式的漏洞,後面我們還要討論。 
  IIS支援虛擬目錄,通過在"伺服器屬性"對話方塊中的"目錄"標籤可以管理虛擬目錄。建立虛擬目錄對於管理WEB網站具有非常重要的意義。虛擬目錄隱藏了有關網站目錄結構的重要訊息。因為在瀏覽器中,客戶通過選擇"查看原始碼",很容易就能擷取頁面的檔案路徑資訊,如果在WEB頁中使用實體路徑,將暴露有關網站目錄的重要訊息,這容易導致系統受到攻擊。其次,只要兩台機器具有相同的虛擬目錄,你就可以在不對頁面代碼做任何改動的情況下,將WEB頁面從一台機器上移到另一台機器。還有就是,當你將WEB頁面放置於虛擬目錄下後,你可以對目錄設定不同的屬性,如:Read、Excute、Script。讀訪問表示將目錄內容從IIS傳遞到瀏覽器。而執行訪問則可以使在該目錄內執行可執行檔檔案。當你需要使用ASP時,就必須將你存放.asp檔案的目錄設定為"Excute(執行)"。建議大家在設定WEB網站時,將HTML檔案同ASP檔案分開放置在不同的目錄下,然後將HTML子目錄設定為"讀",將ASP子目錄設定為"執行",這不僅方便了對WEB的管理,而且最重要的提高了ASP程式的安全性,防止了程式內容被客戶所訪問。 
五 ASP漏洞分析和解決方案 
 有人說一台不和外面聯絡的電腦是最安全的電腦,一個關閉所有連接埠,不提供任何服務的電腦也是最安全的。駭客經常利用我們所開放的連接埠實施攻擊,這些攻擊最常見的是DDOS(拒絕服務的攻擊).下面我會列出ASP的二十幾個漏洞,每個漏洞都會有漏洞描述和解決方案。 
1 在ASP程式後加個特殊符號,能看到ASP來源程式 
  受影響的版本: 
  win95+pws 
  IIS3.0 
  98+pws4 不存在這個漏洞。 
  IIS4.0以上的版本也不存在這個漏洞。 
  問題描述: 
  這些特殊符號包括小數點,%81, ::$DATA。比如: 
http://someurl/somepage.asp. 
http:// someurl/somepage.asp%81 
http:// someurl/somepage.asp::$DATA 
http:// someurl/somepage.asp %2e 
http:// someurl/somepage %2e%41sp 
http:// someurl/somepage%2e%asp 
http:// someurl/somepage.asp %2e 
http://someurl/msadc/samples/selector/showcode.asp?source=/msadc/samples/../../../../../../boot.ini (可以看到boot.ini的檔案內容) 
  那麼在安裝有IIS3.0和win95+PWS的瀏覽中就很容易看到somepage.asp的來源程式。究竟是什麼原因造成了這種可怕的漏洞呢?究其根源其實是 Windows NT 特有的檔案系統在做怪。有一點常識的人都知道在 NT 提供了一種完全不同於 FAT 的檔案系統:NTFS,這種被稱之為新技術檔案系統的技術使得 NT 具有了較高的安全機制,但也正是因為它而產生了不少令人頭痛的隱患。大家可能不知道, NTFS 支援包含在一個檔案中 的多資料流,而這個包含了所有內容的主要資料流被稱之為"DATA",因此使得在瀏覽器 裡直接存取 NTFS 系統的這個特性而輕易的捕獲在檔案中的指令碼程式成為了可能。然而 直接導致 ::$DATA 的原因是由於 IIS 在解析檔案名稱的時候出了問題,它沒有很好地規範檔案名稱。 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.