Bahkan, apakah itu komponen atau pengunggahan non -komponen, ada kerentanan ini.
Di Sini
3 fungsi utama berikut:
Function killext (byval s1) 'Kuras sufiks file ilegal
redup earlow
allowext = .jpg, .jpeg, .gif, .bmp, .png, .swf, .rm, .mp3, .wav, .mid, .midi, .ra,.
Avi, .mpg, .mpeg, .sf, .sx, .wma, .mov, .rar, .zip, .s, .xls, .chm, .hlp, .pdf, .pdf, .pdf, .pdf, .pdf
S1 = UCase (S1)
jika len (s1) = 0 lalu
KILLEXT =
kalau tidak
Jika bukan CHK (Allowext, S1 ,,) lalu
KILLEXT = .shit
kalau tidak
KILLEXT = S1
akhiri jika
akhiri jika
fungsi akhir
Fungsi chk (byval s1, byval s2, byval fuhhao) 'periksa string berisi
redup i, a
Chk = false
a = split (s1, fuhao)
untuk i = 0 ke ubound (a)
Jika trim (a (i)) = trim (s2) lalu
Chk = true
keluar untuk
akhiri jika
Berikutnya
fungsi akhir
Fungsi gname (byval n1) 'secara otomatis menghasilkan direktori dan nama file dengan tanggal, parameter 1 menghasilkan direktori, parameter 2 menghasilkan nama file (tanpa akhiran)
redup, r
t = sekarang ()
acak (timer)
R = int ((rnd+1-1)*9999)
Pilih Kasus N1
Kasus 1
gname = tahun (t) & kanan (00 & bulan (t), 2) & kanan (00 & hari (t), 2)
Kasus 2
Gname = kanan (00 & jam (t), 2) & kanan (00 & menit (t), 2) & kanan (00 & Seacond (t), 2) & kanan (0000 & r, 4)
Akhiri Pilih
fungsi akhir
Metode Panggilan:
redup, ofile, ext, myfile
Atur out = server.createObject (persits.upload)
Oup.setMaxSize 10000000, benar
hubungi out.save () 'Di sini diunggah ke memori server, dan tidak ada file yang sebenarnya.
set ofile = oup.files (1)
Ext = killext (ofile.ext)
Myfile = / & ganme (1) & / & gname (2) & ext
Call Ofile.Saveas (server.mappath (myfile))
Instruksi tambahan:
Jika Hacker mengunggah file ilegal dengan NC, file final hanyalah file omong kosong seperti 20051105123459103.shit!