apollosun asli
Sebenarnya, apakah itu unggahan komponen atau non-komponen, ada kerentanan ini. Harap baca kode berikut dengan cermat.
Di sini, dengan mengambil unggahan komponen ASPUPLOAD sebagai contoh,
tiga fungsi utama berikut ini adalah:
function killext(byval s1) 'Membunuh akhiran file ilegal
redupkan izinkan
izinkanext=".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=ukasus(s1)
jika len(s1)=0 maka
killext=""
kalau tidak
jika tidak chk(allowext,s1,",") maka
killext=".sialan"
kalau tidak
bunuhekst=s1
berakhir jika
berakhir jika
akhir function
chk(byval s1,byval s2,byval fuhao) 'Periksa apakah string berisi
dimi,a
chk=salah
a=berpisah(s1,fuhao)
untuk i = 0 sampai ubound(a)
jika trim(a(i))=trim(s2) maka
chk=benar
keluar untuk
berakhir jika
Berikutnya
end function
function gname(byval n1) 'Secara otomatis menghasilkan direktori dan nama file berdasarkan tanggal, parameter 1 menghasilkan direktori, parameter 2 menghasilkan nama file (tanpa akhiran)
redup t,r
t=sekarang()
mengacak (pengatur waktu)
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"&detik(t),2)&kanan("0000"&r,4)
akhir pilih
metode pemanggilan
fungsi akhir
:dim oup,ofile,ext,myfile
Set oup = Server.CreateObject("Persits.Upload")
oup.SetMaxSize 10000000, Benar
call oup.Save() 'Ini diunggah ke memori server, dan tidak ada file sebenarnya yang dihasilkan.
kumpulan file = oup.files(1)
ext=killext(ofile.ext)
myfile="/" & ganme(1) & "/" & gname(2) & ext
panggilan ofile.saveas(server.mappath(myfile))
Catatan tambahan:
Jika seorang hacker menggunakan nc untuk mengunggah file ilegal, file akhir yang mereka dapatkan hanyalah
file "sialan" seperti
200511051234559103.shit
!