• 13-02-2017, 15:40:01
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba arkadaşlar. Burada siteme shell attıklarına dair konuyu açmıştım. Özelden ilgilenen arkadaşlar oldu sağolsunlar ama şuana kadar net birşey bulamadık.
    Siteme bir açıktan faydalanıp shell atmışlar. Sitem çok büyük değil ve kendi tarafımdan yazılmış php scripttir.
    Sitede kullanıcı tarafından veri girişleri sadece Üyelik, Avatar ekleme ve İçeriklere yorum yazmadır.
    Açığın belki Avatar ekleme upload sınıfından olduğunu düşünüyoruz. verot.Netin upload sınıfını kullanmaktayım. Avatarı ajax ile ilgili dosyaya iletip yükletiyorum. Kullandığım kodlar aşağıdaki gibidir. Sizce kodlarda bir açık varmı ?

    if(isset($_POST) && $_SERVER["REQUEST_METHOD"] == 'POST'){
    
    require 'class.upload.php';
    $resim = $_FILES['dosya'];
    
    if($resim==""){
    	echo 'Lütfen bir resim seçiniz.';
    }else{
    
    
    	$image = new Upload($resim);
    	if ( $image->uploaded ){
    
    		$image->allowed = array('image/*');
    		$image->image_min_height = 100;
    		$image->image_min_width = 100;
    		$image->file_new_name_body = 'resimAdi';
    		$image->file_name_body_pre = 'thumb_';
    		$image->image_resize = true;
    		$image->image_ratio_crop = true;
    		$image->image_x = 100;
    		$image->image_y = 100;
    		$image->Process('upload/thumb');
    		
    
    		if ( $image->processed ){
    			echo 'Avatar resminiz başarıyla yüklendi.';
    		} else {
    			echo 'Hata Oluştu.';
    		}
    
    	}
    
    }
    
    }else{
        header('location:/');
    }
  • 13-02-2017, 16:00:58
    #2
    EdgeBear adlı üyeden alıntı: mesajı görüntüle
    Evet açık mevcut.
    Teşekkürler hocam. Peki bir çözüm öneriniz varmıdır, hangi kodları eklemeliyim?
  • 13-02-2017, 16:07:19
    #3
    Bütün resim formatlarına izin vermeniz de açık doğurabilir. Örneğin gif dosyası içine zararlı shell komutları yazıldığı zaman verotnet bunu yine gif olarak görür ve çok farklı şekilde kullanabilmek mümkün. Önerim sadece jpeg,jpg veya png uzantılı resimlere izin vermeniz. İyi günler dilerim.

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 16:07:19 -->-> Daha önceki mesaj 16:05:29 --

    rikato adlı üyeden alıntı: mesajı görüntüle
    Merhaba arkadaşlar. Burada siteme shell attıklarına dair konuyu açmıştım. Özelden ilgilenen arkadaşlar oldu sağolsunlar ama şuana kadar net birşey bulamadık.
    Siteme bir açıktan faydalanıp shell atmışlar. Sitem çok büyük değil ve kendi tarafımdan yazılmış php scripttir.
    Sitede kullanıcı tarafından veri girişleri sadece Üyelik, Avatar ekleme ve İçeriklere yorum yazmadır.
    Açığın belki Avatar ekleme upload sınıfından olduğunu düşünüyoruz. verot.Netin upload sınıfını kullanmaktayım. Avatarı ajax ile ilgili dosyaya iletip yükletiyorum. Kullandığım kodlar aşağıdaki gibidir. Sizce kodlarda bir açık varmı ?

    if(isset($_POST) && $_SERVER["REQUEST_METHOD"] == 'POST'){
    
    require 'class.upload.php';
    $resim = $_FILES['dosya'];
    
    if($resim==""){
    	echo 'Lütfen bir resim seçiniz.';
    }else{
    
    
    	$image = new Upload($resim);
    	if ( $image->uploaded ){
    
    		$image->allowed = array('image/*');
    		$image->image_min_height = 100;
    		$image->image_min_width = 100;
    		$image->file_new_name_body = 'resimAdi';
    		$image->file_name_body_pre = 'thumb_';
    		$image->image_resize = true;
    		$image->image_ratio_crop = true;
    		$image->image_x = 100;
    		$image->image_y = 100;
    		$image->Process('upload/thumb');
    		
    
    		if ( $image->processed ){
    			echo 'Avatar resminiz başarıyla yüklendi.';
    		} else {
    			echo 'Hata Oluştu.';
    		}
    
    	}
    
    }
    
    }else{
        header('location:/');
    }

    ek olarak $resim değişkenine hiç bir filtreleme yapmamışsınız. Basit xss yöntemleri ile bile aşılabilir.
  • 13-02-2017, 16:16:52
    #4
    EdgeBear adlı üyeden alıntı: mesajı görüntüle
    Mime type ile dosya tipi "image" sistemini seçmişsiniz ama bu bypass edilip aşılabiliyor.

    Dosya uzantı kontrolü gibi şeyler yapınız.
    emrtnm adlı üyeden alıntı: mesajı görüntüle
    Bütün resim formatlarına izin vermeniz de açık doğurabilir. Örneğin gif dosyası içine zararlı shell komutları yazıldığı zaman verotnet bunu yine gif olarak görür ve çok farklı şekilde kullanabilmek mümkün. Önerim sadece jpeg,jpg veya png uzantılı resimlere izin vermeniz. İyi günler dilerim.

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 16:07:19 -->-> Daha önceki mesaj 16:05:29 --




    ek olarak $resim değişkenine hiç bir filtreleme yapmamışsınız. Basit xss yöntemleri ile bile aşılabilir.

    Verdiğiniz tüm değerli önerileri tekrar uygulayacağım arkadaşlar. Çok teşekkür ederim. Büyük ihtimal dosya tipini byPass edip atmışlar sheli.