El objeto script.filesystemObject es uno de los muchos objetos COM proporcionados por scrrun.dll para el control VBScript/JScript. Scripting.filesystemObject proporciona un acceso muy conveniente a archivos de texto y directorios de archivos, pero también plantea ciertas amenazas para la seguridad de datos del servidor web IIS.
El código de FileFinder es muy simple, consta de 3 funciones y 30 líneas de código secuencial.
Lo más importante es la función FindFiles, que implementa el recorrido de un determinado directorio llamándolo de manera recursiva y busca estos archivos de acuerdo con una extensión de archivo específica.
función findfiles (strstartfunder, strext)
atenuado
dim ohesfolder
DiM ofolders
OFILES DIM
Dim Ofdolder
Ofile
'Si el administrador del sistema establece cuidadosamente los permisos del sistema de archivos, el siguiente código cometerá un error
'Pero todavía se pueden ver algunos directorios, por lo que simplemente ignoramos los errores
En el currículum de error siguiente
n = 0
respuesta
Establecer thatisFolder = g_fs.getfolder (strstartfeder)
set Ofile = AllisFolder.files
para cada uno de ile en OFILES
'Si es la extensión del archivo especificada, emite la guía de conexión en sí, pero use un comando diferente CMD
'Aquí está cmd = leer, es decir, lea el archivo de texto con la ruta física especificada
Si isSuffix (Ofile.path, strext) entonces
Response.Write <a Target = _Blank href = 'ff.asp? Cmd = read & path = & server.htmlencode (Ofile.path) &'> <font color = 'dodgerblue'> & ofile.path & </font> </a> <br> <br>
Si err = 0 entonces
n = n + 1
final si
final si
próximo
set Ofolders = cualquiera de los cuales
para cada uno de los mayores en el mayor
n = n + findfiles (ofolder.path, strext)
próximo
findfiles = n
función final
El siguiente código analiza los parámetros después de la URL:
'Lea los valores de cada parámetro
strcmd = ucase (request.querystring (cmd))
strpath = request.querystring (ruta)
strext = request.queryString (ext)
brawData = ucase (request.querystring (raw))
'Búsqueda predeterminada de archivos .asp
Si strpath = entonces
strpath =.
final si
Si strext = entonces
strext = .asp
final si
'Ejecutar diferentes códigos de acuerdo con diferentes comando CMD
Seleccionar el caso STRCMD
CASO CONSIGAR
Response.Write FindFiles (strpath, strext) y archivos encontrados encontrados
Lectura de la caja
Si brawData = t entonces
Response.Write ReadTextFile (strpath)
demás
Response.write <RE1S> & Server.htmlencode (readTextFile (strpath)) & </pre>
final si
caso
Response.Write <H3> Especifique un comando para ejecutar </h3>
final seleccionar
Del análisis anterior, podemos ver que si tenemos permisos suficientes, podemos usar FileFinder para encontrar cualquier archivo de texto en el servidor web IIS, y podemos ver fácilmente el contenido del archivo. Para los archivos que no son de texto, es posible determinar si existen y dónde se encuentran, lo que a veces es extremadamente importante para los piratas informáticos avanzados.