แนะนำ: แนวคิดการใช้งานและรหัสการใช้งานที่ปราศจากส่วนประกอบ ASP การปนเปื้อนที่ปราศจากส่วนประกอบนั้นเหลือเชื่อ คุณจะรู้โดยดูที่ผลของบทความนี้ มาแบ่งปันการใช้งานเฉพาะด้านล่างกับคุณ เพื่อนที่สนใจสามารถอ้างถึงได้
Title: ASP Ewebeditor v3.8 คอลัมน์ช่องโหว่ (เวอร์ชันอื่นคือการทดสอบ)
ไฟล์ช่องโหว่: ASP/BROWSE.ASP
ช่องโหว่เกิดขึ้น:
sub initparam ()
stype = ucase (trim (request.querystring (ประเภท))) sstylename = trim (request.querystring (สไตล์)) scusdir = trim (request.querystring (cusdir)) dim i, astyleconfig, bvalidstylebvvalidstyle แยก (astyle (i), |||) ถ้า lcase (sstylename) = lcase (astyleconfig (0)) thenbvalidstyle = trueexit forend ifnextif bvalidstyle = เท็จ CLNG (ASTYLECONFIG (43)) NCUSDIRFLAG = CLNG (ASTYLECONFIG (61)) ถ้า nallowBrowse <> 1 thenoutscript (การแจ้งเตือน ('ไม่อนุญาตให้เบราว์เซอร์! ซ้าย (scusdir, 1) = หรือขวา (scusdir, 1) = หรือ instr (scusdir, ./)> 0 หรือ instr (scusdir, /.)> 0 หรือ instr (scusdir, //)> 0 thenscusdir = elseif ขวา (scusdir, 1) <> /thenscusdir = scusdir & /end ifend ifenfloaddir (3) ../ & suploaddirend ifselect case sbaseurlcase 0StyleConfig (23) กรณี 1ScontentPath = Retienth2rootPath (suploaddir) กรณี 2ScontentPath = rootpath2domainpath scusdirselect case stypecase filesallowext = case mediasallowext = rm | mp3 | wav | mid | midi | ra | avi | mpg | mpeg | asf | asx | wma | movcase flashsallowext = swfcase elsallowext = bmp | jpg | jpg | jpg | TRIM (คำขอ (dir)) '1 สมมติว่า dir = ../'2 สมมติว่า dir = ... // '3 สมมติว่า dir = ... /// sdir = แทนที่ (sdir,/,/) 'ตัวกรอง 1Sdir = แทนที่ (sdir, ../,)' ตัวกรอง 2'1 มันถูกกรองที่นี่ sdir = แทนที่ (sdir, ./,) 'ตัวกรอง 3'2 ยังใช้พลังงานที่นี่' 3 อยู่ที่นี่ .../ น่าสนใจยิ่งขึ้น! ดูเหมือนว่า CMS จำนวนมากจะถูกกรองเช่นนี้ [ /color] ถ้า sdir <> thenif checkvaliddir (server.mappath (suploaddir & sdir)) = true thenscurrdir = suploaddir & sdir & /elsesdir = สิ้นสุด ifend ifend subแบ่งปัน: วิธีการรับที่อยู่ IP จริงของ ASP ใช้ request.serverVariables (remote_addr) ใน ASP เพื่อรับที่อยู่ IP ของไคลเอนต์ แต่หากไคลเอนต์ใช้พร็อกซีเซิร์ฟเวอร์เพื่อเข้าถึงที่อยู่ IP ของพร็อกซีเซิร์ฟเวอร์ไม่ใช่ที่อยู่ IP ของไคลเอนต์จริง ในการรับที่อยู่ IP จริงของไคลเอน