Sitemi bu açığa karşı nasıl korurum ?
İlgili dosyayı download kısmından indirip sıkıştırılmış dosyayı açın. Klasör içeriğindeki tüm dosyaları;
datas/users/
klasörü içine kopyalayın.
/users/ klasörünün chmod ayarını 755 yapın.
--
Ldu ve Seditio’da 3 farklı upload olayı vardır.
1- avatar upload
2- photo upload
3- my files (pfs.php)
Eğer isterseniz datas/photos/ ve datas/avatars/ klasörleri içinde uygulayabilirsiniz.
İşleyiş nedir ?
.htaccess = bulunduğu klasördeki alttaki dosyalara istekte bulunan istemciyi *.php?*=dosya dosyasına yönlendirir.
jpg.php = istek gelen jpg dosyasını Php server üzerinden sadece image görüntülemesi için çalıştırıyoruz.
gif.php = istek gelen gif dosyasını Php server üzerinden sadece image görüntülemesi için çalıştırıyoruz.
png.php = istek gelen png dosyasını Php server üzerinden sadece image görüntülemesi için çalıştırıyoruz.
bmp.php = istek gelen bmp dosyasını Php server üzerinden sadece application/pdf görüntülemesi için çalıştırıyoruz.
zip.php = istek gelen zip dosyasını Php server üzerinden sadece application/zip görüntülemesi için çalıştırıyoruz.
rar.php = istek gelen rar dosyasını Php server üzerinden sadece application/rar görüntülemesi için çalıştırıyoruz.
pdf.php = istek gelen pdf dosyasını Php server üzerinden sadece application/pdf görüntülemesi için çalıştırıyoruz.
mov.php = istek gelen mov dosyasını Php server üzerinden sadece video/quicktime görüntülemesi için çalıştırıyoruz.
qt.php = istek gelen qt dosyasını Php server üzerinden sadece video/quicktime görüntülemesi için çalıştırıyoruz.
ogg.php = istek gelen ogg dosyasını Php server üzerinden sadece video/quicktime görüntülemesi için çalıştırıyoruz.
avi.php = istek gelen avi dosyasını Php server üzerinden sadece video/x-msvideo görüntülemesi için çalıştırıyoruz.
mpg.php = istek gelen mpg dosyasını Php server üzerinden sadece video/mpeg görüntülemesi için çalıştırıyoruz.
mpeg.php = istek gelen mpeg dosyasını Php server üzerinden sadece video/mpeg görüntülemesi için çalıştırıyoruz.
txt.php = istek gelen txt dosyasını Php server üzerinden sadece text/plain görüntülemesi için çalıştırıyoruz.
mp3.php = istek gelen mp3 dosyasını Php server üzerinden sadece audio/mp3 görüntülemesi için çalıştırıyoruz.
wav.php = istek gelen wav dosyasını Php server üzerinden sadece audio/x-wav görüntülemesi için çalıştırıyoruz.
Böylece upload edilen jpg, jpeg, png, bmp, rar, zip, mov, mpeg, mpg, avi, ogg, qt, txt, mp3, wav, pdf, ve özellikle gif dosyasına inject edilen php xss ve ayrıca getimagesize() fonksiyonunu bypass ederek kötü kod çalıştırılmasını önlemiş oluyoruz.
(uzantılar referansı system/config.extensions.php dosyasından alınmıştır)
İlgili dosyayı download kısmından indirip sıkıştırılmış dosyayı açın. Klasör içeriğindeki tüm dosyaları;
datas/users/
klasörü içine kopyalayın.
/users/ klasörünün chmod ayarını 755 yapın.
--
Ldu ve Seditio’da 3 farklı upload olayı vardır.
1- avatar upload
2- photo upload
3- my files (pfs.php)
Eğer isterseniz datas/photos/ ve datas/avatars/ klasörleri içinde uygulayabilirsiniz.
İşleyiş nedir ?
.htaccess = bulunduğu klasördeki alttaki dosyalara istekte bulunan istemciyi *.php?*=dosya dosyasına yönlendirir.
jpg.php = istek gelen jpg dosyasını Php server üzerinden sadece image görüntülemesi için çalıştırıyoruz.
gif.php = istek gelen gif dosyasını Php server üzerinden sadece image görüntülemesi için çalıştırıyoruz.
png.php = istek gelen png dosyasını Php server üzerinden sadece image görüntülemesi için çalıştırıyoruz.
bmp.php = istek gelen bmp dosyasını Php server üzerinden sadece application/pdf görüntülemesi için çalıştırıyoruz.
zip.php = istek gelen zip dosyasını Php server üzerinden sadece application/zip görüntülemesi için çalıştırıyoruz.
rar.php = istek gelen rar dosyasını Php server üzerinden sadece application/rar görüntülemesi için çalıştırıyoruz.
pdf.php = istek gelen pdf dosyasını Php server üzerinden sadece application/pdf görüntülemesi için çalıştırıyoruz.
mov.php = istek gelen mov dosyasını Php server üzerinden sadece video/quicktime görüntülemesi için çalıştırıyoruz.
qt.php = istek gelen qt dosyasını Php server üzerinden sadece video/quicktime görüntülemesi için çalıştırıyoruz.
ogg.php = istek gelen ogg dosyasını Php server üzerinden sadece video/quicktime görüntülemesi için çalıştırıyoruz.
avi.php = istek gelen avi dosyasını Php server üzerinden sadece video/x-msvideo görüntülemesi için çalıştırıyoruz.
mpg.php = istek gelen mpg dosyasını Php server üzerinden sadece video/mpeg görüntülemesi için çalıştırıyoruz.
mpeg.php = istek gelen mpeg dosyasını Php server üzerinden sadece video/mpeg görüntülemesi için çalıştırıyoruz.
txt.php = istek gelen txt dosyasını Php server üzerinden sadece text/plain görüntülemesi için çalıştırıyoruz.
mp3.php = istek gelen mp3 dosyasını Php server üzerinden sadece audio/mp3 görüntülemesi için çalıştırıyoruz.
wav.php = istek gelen wav dosyasını Php server üzerinden sadece audio/x-wav görüntülemesi için çalıştırıyoruz.
Böylece upload edilen jpg, jpeg, png, bmp, rar, zip, mov, mpeg, mpg, avi, ogg, qt, txt, mp3, wav, pdf, ve özellikle gif dosyasına inject edilen php xss ve ayrıca getimagesize() fonksiyonunu bypass ederek kötü kod çalıştırılmasını önlemiş oluyoruz.
(uzantılar referansı system/config.extensions.php dosyasından alınmıştır)