国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

ASP中FSO對象對IIS WEB服務器數(shù)據(jù)安全的威脅及對策

2019-11-18 21:24:25
字體:
供稿:網(wǎng)友
scripting.filesystemobject 對象是由 scrrun.dll  提供的許多供 vbscript/jscript 控制的 com 對象之一。scripting.filesystemobject 提供了非常便利的文本文件和文件目錄的訪問,但是同時也對 iis web 服務器數(shù)據(jù)安全造成了一定的威脅。

在繼續(xù)深入討論之前,請先到作者的主頁http://263.csdn.net/edyang/ download 區(qū) source 分欄下載 filefinder asp 源代碼。

filefinder 的代碼很簡單,由3 個函數(shù)和 30 行左右的順序代碼構(gòu)成。

最關鍵的是 findfiles 函數(shù),通過對它的遞歸調(diào)用實現(xiàn)對某個目錄的遍歷,并且按照特定的文件擴展名來搜尋這些文件。



function findfiles(strstartfolder, strext)

        dim n

        dim othisfolder

        dim ofolders

        dim ofiles

        dim ofolder

        dim ofile



        ' 如果系統(tǒng)管理員對文件系統(tǒng)的權(quán)限進行細致的設置話,下面的代碼就要出錯

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

        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 后面的參數(shù)進行分析:


' 讀出各個參數(shù)的值

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


' 根據(jù)不同的命令 cmd 執(zhí)行不同的代碼

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

從上面的分析可以看出,如果有足夠的權(quán)限的話,我們就可以通過 filefinder 來查找 iis web 服務器上的任意文本文件,并且可以輕松的察看文件內(nèi)容。對于非文本文件,可以確定他們是否存在及其所在路徑,這對于高級 hacker 們來說,這些信息有時是極其重要的。

但是這些對數(shù)據(jù)安全的威脅的前提條件是執(zhí)行 ff.asp 的用戶至少擁有讀取目錄和文件的權(quán)限。由于 windows nt server 在安裝后的默認安全設置是所有用戶都可以“讀取”目錄和文件,所以不管是 iis 默認的你名用戶 iusr_servername 還是別的什么用戶,都可以順列的讀取目錄和文件的信息。而大多數(shù) windows nt server系統(tǒng)管理員主要關心系統(tǒng)是否能夠運行的起來,一般不愿意去改動默認的目錄和文件權(quán)限,畢竟那樣做要冒很大的風險,而且需要很多次得經(jīng)驗。所以,我們可以用 filefinder 來檢查作為 web 服務器的 nt server 的文件系統(tǒng)的安全設置是否安全。

作者專門對作為 iis web 服務器的文件系統(tǒng)的權(quán)限進行了人工設置,但限于沒有經(jīng)驗,導致了許多奇怪的錯誤現(xiàn)象,如:所用的做實驗的 nt server 4.0 不能進行 access 數(shù)據(jù)庫的連接。而在進行文件系統(tǒng)權(quán)限改動之前,這些功能是正常的。

本著純粹研究的目的,作者還在我所申請的免費 asp 空間上作了試驗(包括 csdn 提供的我的個人主頁),結(jié)果是 filefinder 都可以順利運行。而在http://www2.domaindlx.com/index.html 申請的個人主頁卻沒有這個問題,可見這個免費 asp 主頁提供商在這方面做的還是比較認真的。盡管 domaindlx 的 web 服務器運行在 windows 2000 server 上的,其默認的文件系統(tǒng)的安全權(quán)限和 nt 4.0 沒有很大的差別。

由于作者的能力有限,就對這個問題討論到這里。僅以此文來向國內(nèi)的 asp 主頁提供商提供參考意見,希望能對提供商和客戶雙方的數(shù)據(jù)安全都有所幫助。

附:用其它類似的服務器端腳本來運行的 web 服務,如果也提供類似 scripting.filesystemobject 的對文件系統(tǒng)操作的功能,不管什么平臺應該存在同樣的問題。
例了:
http://localhost/edyang/ff.asp?cmd=find&path=c:http://localhost/edyang/ff.asp?cmd=find&path=c:/my documents&ext=txt&raw=true  


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 广昌县| 贵州省| 呼伦贝尔市| 杨浦区| 无极县| 龙岩市| 涞源县| 闻喜县| 新巴尔虎右旗| 保靖县| 平远县| 廊坊市| 龙陵县| 西乌珠穆沁旗| 金湖县| 平南县| 信丰县| 淄博市| 象山县| 丹东市| 柞水县| 南川市| 和平县| 水城县| 土默特右旗| 海门市| 伊吾县| 郓城县| 家居| 通城县| 翁牛特旗| 永宁县| 延川县| 麦盖提县| 曲阜市| 林芝县| 黎平县| 秭归县| 当涂县| 和政县| 大丰市|