程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> asp中禁用FileSystemObject組件方法

asp中禁用FileSystemObject組件方法

編輯:ASP技巧

ASP木馬最常用的組件就是FileSystemObject組件,木馬可以利用這個組件來對空間中的頁面進行修改,刪除,增加,以達到它的目的。所以為了服務器的安全,通常需要對這個組件進行一些處理,如:禁用這個組件,或者將這個組件重命名。禁用FileSystemObject組件和重命名此組件及使用方法如下:

第一種:用RegSrv32 /u C:\Windows\SYSTEM\scrrun.dll(win98路徑)來注銷該組件。

第二種:修改Progid的值,在ASP裡調用組件的方式通常是 Set 對象名=Server.CreateObject("Progid"),這時候我們就可以通過修改注冊表中的Progid值從達到禁用該組件的方法。在 開始-運行中敲入regedit,然後找到HKEY_CLASSES_ROOT\Scripting.FileSystemObject,這時候我們就可以更改該rogid的值了,如改成Scripting.FileSystemObject8。這樣在ASP頁裡就這樣調用了: 
<%@ Language=Vbscript%> 
<% 
Set Fs=Server.CreateObject("Scripting.FileSystemObject8") 
%> 
(如果你前面沒有調用過該組件的話,則無須重啟,就可以看到效果了,否則請重啟後看效果。) 
這時候我們看看還是用原來的調用方法的結果: 
<%@ Language=Vbscript%> 
<% 
Set Fs=Server.CreateObject("Scripting.FileSystemObject") 
%> 
這時候的運行結果為: 
服務器對象 錯誤 'ASP 0177 : 800401f3'

Server.CreateObject 失敗

/aspimage/testfile2.ASP, 行3 800401f3 
OK,達到我們的要求。
第三種:能通過修改Progid值來禁用該組件,那也可以通過修改Clsid來實現。
我們知道,除了CreateObject方法以外,也可以使用一般的<object>標注建立一個組件,我們可以在ASP裡面使用Html的<object>標注,以便在網頁中加入一個組件。方法是:<object runat=server id=fs1 scope=page progid="Scripting.FileSystemObj 
ect"></object>Runat表示是在服務端執行,Scope表示組件的生命周期,可以選用Session,Application或page(表示當前頁面,也可缺省)這種寫法對我們沒用,還有一種寫法是:
<object runat=server id=fs1 scope=page classid="clsid:clsid的值"></obj 
ect>
我們也可以通過修改該Clsid的值而禁用該組件,如將注冊表中HKEY_CLASSES_ROOT\Scripting.FileSystemObject\CLSID的值0D43FE01-F093-11CF-8940-00A0C9054228改成0D43FE01-F093-11CF-8940-00A0C9054229(改了最後面一位),這時候的寫法為:
<object runat=server id=fs1 scope=page classid="clsid:0D43FE01-F093-11 
CF-8940-00A0C9054229"></object> 
看運行結果,沒問題,OK。這時候我們再用<object runat=server id=fs1 scope=page classid="clsid:0D43FE01-F093-11CF-8940-00A0C9054228"></object>這時候就出錯了。

新建一用戶:iusr_domain
IIS裡設置對應站點的匿名用戶IUSR_DoMAIN
CACLS: 設置目錄權限

這樣ASP編程中可以FSO可用,但又不會影響別人,又安全,一舉三得。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved