目錄遍歷漏洞詳解

對於一個安全Web服務器來說,對Web內容進行恰當的訪問控制是極爲關鍵的。目錄遍歷是Http所存在的一個安全漏洞,它使得攻擊者能夠訪問受限制的目錄,並在Web服務器的根目錄以外執行命令。

  Web服務器主要提供兩個級別的安全機制:

  •   訪問控制列表——就是我們常說的ACL
  •   根目錄訪問

  訪問控制列表是用於授權過程的,它是一個Web服務器的管理員用來說明什麼用戶或用戶組能夠在服務器上訪問、修改和執行某些文件的列表,同時也包含了其他的一些訪問權限內容。

  根目錄是服務器文件系統中一個特定目錄,它往往是一個限制,用戶無法訪問位於這個目錄之上的任何內容。

  例如:在Windows的IIS其默認的根目錄是C:\Inetpub\wwwroot,那麼用戶一旦通過了ACL的檢查,就可以訪問C:\Inetpub\wwwroot\news目錄以及其他位於這個根目錄以下的所有目錄和文件,但無法訪問C:\Windows目錄。

  根目錄的存在能夠防止用戶訪問服務器上的一些關鍵性文件,譬如在Windows平臺上的cmd.exe或是Linux/Unix平臺上的口令文件。

  這個漏洞可能存在於Web服務器軟件本身,也可能存在於Web應用程序的代碼之中。

  要執行一個目錄遍歷攻擊,攻擊者所需要的只是一個web瀏覽器,並且有一些關於系統的一些缺省文件和目錄所存在的位置的知識即可。

  如果你的站點存在這個漏洞,攻擊者可以用它來做些什麼?

  利用這個漏洞,攻擊者能夠走出服務器的根目錄,從而訪問到文件系統的其他部分,譬如攻擊者就能夠看到一些受限制的文件,或者更危險的,攻擊者能夠執行一些造成整個系統崩潰的指令。

  依賴於web站點的訪問是如何設置的,攻擊者能夠仿冒成站點的其他用戶來執行操作,而這就依賴系統對Web站點的用戶是如何授權的。

  (1)利用Web應用代碼進行目錄遍歷攻擊的實例

  在包含動態頁面的Web應用中,輸入往往是通過GET或是POST的請求方法從瀏覽器獲得,以下是一個GET的Http URL請求示例:

  http://test.webarticles.com/show.asp?view=oldarchive.html

  利用這個URL,瀏覽器向服務器發送了對動態頁面show.asp的請求,並且伴有值爲oldarchive.html的view參數,當請求 在Web服務器端執行時,show.asp會從服務器的文件系統中取得oldarchive.html文件,並將其返回給客戶端的瀏覽器,那麼攻擊者就可 以假定show.asp能夠從文件系統中獲取文件並編制如下的URL:

  http://test.webarticles.com/show.asp?view=../../../../../Windows/system.ini

  那麼,這就能夠從文件系統中獲取system.ini文件並返回給用戶,../的含義這裏就不用多說了,相信大家都會明白。攻擊者不得不去猜測需要往上多少層才能找到Windows目錄,但可想而知,這其實並不困難,經過若干次的嘗試後總會找到的。

  (2)利用Web服務器進行目錄遍歷攻擊的實例:

  除了Web應用的代碼以外,Web服務器本身也有可能無法抵禦目錄遍歷攻擊。這有可能存在於Web服務器軟件或是一些存放在服務器上的示例腳本中。

  在最近的Web服務器軟件中,這個問題已經得到了解決,但是在網上的很多Web服務器仍然使用着老版本的IIS和Apache,而它們則可能仍然無法抵禦這類攻擊。即使你使用了已經解決了這個漏洞的版本的Web服務器軟件,你仍然可能會有一些對黑客來說是很明顯的存有敏感缺省腳本的目錄。

  例如,如下的一個URL請求,它使用了IIS的腳本目錄來移動目錄並執行指令:http://server.com/scripts/..%5c../Windows/System32/cmd.exe?/c+dir+c:\

  這個請求會返回C:\目錄下所有文件的列表,它使通過調用cmd.exe然後再用dir c:\來實現的,%5c是web服務器的轉換符,用來代表一些常見字符,這裏表示的是“\”

  新版本的Web服務器軟件會檢查這些轉換符並限制它們通過,但對於一些老版本的服務器軟件仍然存在這個問題。

  如何判斷是否存在目錄遍歷漏洞?

  最好的方式就是使用Web漏洞掃描器,Web漏洞掃描器能夠遍歷你Web站點的所有目錄以判斷是否存在目錄遍歷漏洞,如果有它會報告該漏洞並給出解決的方法,除了目錄遍歷漏洞以外,Web應用掃描還能檢查SQL注入、跨站點腳本攻擊以及其他的漏洞。


“遍歷目錄”其實並不能算是漏洞,因爲它是IIS的一個功能項。在IIS中將該選項勾上後,用戶就可以通過目錄的形式訪問網站中的文件,通常這項功能被用於共享文件。但由於管理員的疏忽或經驗不足,在網站中開啓了這項功能,這就是一個不折不扣的大漏洞了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章