

Sunucu - Klasöre Upload Ta Uzantı Belirlemek
-
Merhaba
Linux Sunucunun içindeki herhangi bir hostta, scriptin upload yaptığı klasöre sadece jpg uzantılı dosyaların upload edilmesini istiyorum.
Bugün sitenin birine index atılmak üzereydi.Son anda farkettim. r57.php ve hosttaki dosyaları direk listeleyen vs shell dosyaları upload edilmiş.Bunun başka bir yöntemi varmıdır?Yoksa benim çözümüm yeterlimi?
Örneğin upload_resimler klasörüne bu tarz shell dosyaları atıp index basmak istemişler.
-
Hiç bilen yokmu?
-
onu kullandığın scripttten ayarlıyacaksın kullandığın scripttten hangi uzantı da ki dosyalar upload edilsin istiyorsan onların uzantısını ayarlıyacaksın kulandığın scriptin ne olduğunu belirtirsen ona göre yardımcı olunur.
-
şimdi scriptte zaten kontrol ettiriyorum.
if($_FILES['resim']['type'] == "image/gif") $tip="gif";
if($_FILES['resim']['type'] == "image/jpeg") $tip="jpg";
if($_FILES['resim']['type'] == "image/pjpeg") $tip="jpg";
if($_FILES['resim']['type'] == "image/png") $tip="png";gibi.
Ama burdan erişmeleri imkansız.resimlerin yüklendiği yer admin panelinde ve baya sağlam kodladım girişi kontrolleri.
Ama hostingde www.x.com/upload_resimler klasörüne bi şekilde atmışlar dosyaları.
-
yazdığın kodun upload kısmını yapıştırırsan daha rahat yardımcı oluruz hocam... (:
büyük ihtimal senin kod üzerinden upload etmişler, başka yerden giriyolarsa her türlü çakarlar zaten indeksi..
-
hocam burdan yapmadıklarına eminim. şöyleki zaten çakmışlardı indexi.az kala dediğim sadece 15-20 sn kaldı index.
upload kodlarıda şöyleki
$uploaddir = "../upload_resimler/";
$dosya1 = md5(time()).md5(time()+1);
$dizi = explode(".", $_FILES['resim']['name']);
$sayi = count($dizi);
$dosya_adi = $dosya1.".".$dizi[$sayi-1];
$uploadfile = $uploaddir.$dosya_adi;if (move_uploaded_file($_FILES['resim']['tmp_name'], $uploadfile)) {
if($_FILES['resim']['type'] == "image/gif") $tip="gif";
if($_FILES['resim']['type'] == "image/jpeg") $tip="jpg";
if($_FILES['resim']['type'] == "image/pjpeg") $tip="jpg";
if($_FILES['resim']['type'] == "image/png") $tip="png";
$sorgu = "INSERT INTO `tbl_resimler` ( `id` , `baslik` , `metin`, `resim` )
VALUES ('', '".addslashes($_POST["baslik"])."', '".addslashes($_POST["metin"])."', '$dosya_adi');";
$sonuc = sorgula($sorgu, $kaynak);benim istediğim bu upload_resim klasörünün içinde sadece jpg vb dosyalar olsun..htaccess tarzı bişey varmı?
Yada kendim script yazıcam 1 dk da bir tarıyacak klasörü resim harici herşeyi silecek. -
if($_FILES['resim']['type'] == "image/gif") $tip="gif"; bu şekilde yapmandaki amaç ne ? :D yani sen onları şettirmişin ama düzgün bişi olmamış yinede her tür dosya upload edilebilir.
if ($_FILES['resim']['type'] == "image/gif"){
if (move_uploaded_file($_FILES['resim']['tmp_name'], $uploadfile)) {
$sorgu = "INSERT INTO `tbl_resimler` ( `id` , `baslik` , `metin`, `resim` )
VALUES ('', '".addslashes($_POST["baslik"])."', '".addslashes($_POST["metin"])."', '$dosya_adi');";
$sonuc = sorgula($sorgu, $kaynak);}
} böle yapcan o ife or la eklersin jpegi falanda
-
..<Files *.php>
..Order allow,deny
..deny from all
..</Files>ayrıca klasör içine bir htaccess dosyası olusturup ıcınede yukardakileri yazarsa klasordeki php dosyalar erişilemez olurlar.
(satır baslarındaki iki noktayı kaldır filtreye takıldı sanırm)
-
Shell dosyalarını bypass eden bir ayarı olması lazım sunucunun.yoksa adam shell.php yi shell.jpg yapıp
link/shell.jpg?uzakshell yontemiyle yine girer.Zannımda boyle girildi ve .jpg .php ye cevrildi sen gec farketmissin hatta...
Bu arada Safe_Mode = Off olduguna emin misin..!
-
SoYSaL bunu yazdı:
-----------------------------
Shell dosyalarını bypass eden bir ayarı olması lazım sunucunun.yoksa adam shell.php yi shell.jpg yapıp
link/shell.jpg?uzakshell yontemiyle yine girer.Zannımda boyle girildi ve .jpg .php ye cevrildi sen gec farketmissin hatta...
Bu arada Safe_Mode = Off olduguna emin misin..!
-----------------------------Access Shell i disable yaptım sunucudan Ama bu olaydan sonra oldu tabi.
Safemodda kapalı.
-
DarkF4Te bunu yazdı:
-----------------------------
..
..Order allow,deny
..deny from all
..ayrıca klasör içine bir htaccess dosyası olusturup ıcınede yukardakileri yazarsa klasordeki php dosyalar erişilemez olurlar.
(satır baslarındaki iki noktayı kaldır filtreye takıldı sanırm)
-----------------------------Bunu denedim.Şimdi php dosyaları çalışmıyor.Zaten adamların klasörün içine attıkları php dosyasını ben denedim başka bir sitede, www.x.com/x.php diye yazınca direk sunucu içeriği geliyodu.Buradanda dosyaları düzenleyip silebiliyodu. Şimdi en azından php çalışmıyo.
Yaptıklarıda yukarıda anlattığım şekilde index.php yi değiştirmeleri.