ต้นฉบับของ Apollon
ที่จริงแล้ว ไม่ว่าจะเป็นการอัปโหลดส่วนประกอบหรือไม่ใช่ส่วนประกอบก็ตาม มีช่องโหว่นี้อยู่ โปรดอ่านโค้ดต่อไปนี้อย่างละเอียด ตราบใดที่คุณเข้าใจโค้ดนี้ คุณก็สามารถเข้าใจได้
ในที่นี้ จากการอัปโหลดส่วนประกอบ ASPUPLOAD เป็นตัวอย่าง
ฟังก์ชันหลักสามฟังก์ชันต่อไปนี้คือ:
ฟังก์ชัน killext(byval s1) 'กำจัดส่วนต่อท้ายไฟล์ที่ผิดกฎหมาย
อนุญาตสลัว
Allowext=".JPG,.JPEG,.GIF,.BMP,.PNG,.SWF,.RM,.MP3,.WAV,.MID,.MIDI,.RA,.
AVI,.MPG,.MPEG,.ASF,.ASX,.WMA,.MOV,.RAR,.ZIP,.EXE,.DOC,.XLS,.CHM,.HLP,.PDF"
s1=uกรณี(s1)
ถ้า len(s1)=0 แล้ว
ฆ่าข้อความ = ""
อื่น
ถ้าไม่ใช่ chk(allowext,s1,",") แล้ว
killext=".shit"
อื่น
killext=s1
สิ้นสุดถ้า
สิ้นสุดถ้า
end function
function chk(byval s1,byval s2,byval fuhao) 'ตรวจสอบว่าสตริงมี
ดิมิ ก
ชเค=เท็จ
a=split(s1,ฟูเฮา)
สำหรับ i = 0 ถึง ubound(a)
ถ้า trim(a(i))=trim(s2) แล้ว
CHK=จริง
ออกเพื่อ
สิ้นสุดถ้า
ต่อไป
ฟังก์ชั่นสิ้นสุด
ฟังก์ชั่น gname (byval n1) 'สร้างไดเร็กทอรีและชื่อไฟล์โดยอัตโนมัติตามวันที่ พารามิเตอร์ 1 สร้างไดเร็กทอรี พารามิเตอร์ 2 สร้างชื่อไฟล์ (ไม่มีส่วนต่อท้าย)
สลัว t, r
t=ตอนนี้()
สุ่ม (จับเวลา)
r=int((รอบ+1-1)*9999)
เลือกกรณี n1
กรณีที่ 1
gname=year(t)&right("00"&เดือน(t),2)&right("00"&วัน(t),2)
กรณีที่ 2
gname=right("00"&ชั่วโมง(t),2)&right("00"&นาที(t),2)&right("00"&วินาที(t),2)&right("0000"&r,4)
สิ้นสุดการเลือก
วิธีการเรียกใช้
ฟังก์ชันสิ้นสุด
:dim oup,ofile,ext,myfile
Set oup = Server.CreateObject("Persits.Upload")
oup.SetMaxSize 10000000 จริง
call oup.Save() 'สิ่งนี้ถูกอัพโหลดไปยังหน่วยความจำเซิร์ฟเวอร์ และไม่มีการสร้างไฟล์จริง'
ชุด ofile = oup.files(1)
ext=killext(ofile.ext)
myfile="/" & ganme(1) & "/" & gname(2) & ต่อ
การโทร ofile.saveas (server.mappath (myfile))
หมายเหตุเพิ่มเติม:
หากแฮ็กเกอร์ใช้ NC เพื่ออัปโหลดไฟล์ผิดกฎหมาย ไฟล์สุดท้ายที่พวกเขาได้รับจะเป็นเพียง
ไฟล์ "ไร้สาระ" เช่น
200511051234559103.shit
!