Güvenlik sorunu?

5 Cevap php

Ben küçük bir PHP uygulama yazıyorum ve ben bir güvenlik sorunu var mı emin değilim. Yani bu uygulama ne olduğunu:

  • Kullanıcı görüntü dosyaları (png, gif, jpg, jpeg, tiff ve birkaç diğerleri) veya zip dosyaları da yükleyebilirsiniz

Ben mim-türü ve uzantısı için kontrol edin ve bir izin değil, eğer (bu ben endişe duyuyorum parçası değildir) yükleme izin vermez.

Şimdi bir kere ben bir klasör dışında root erişimi benzersiz karma ve saklamak için dosyayı yenkimliken adlveırın yükledi.

Kullanıcı şimdi kısa bir URL üzerinden dosyaya erişebilir. ) (Ben başlık için doğru MIME türünü ayarlayarak dosya erişilebilir yapmak ve sonra ben sadece readfile kullanın.

Benim soru bir kavanoz dosya görüntü dosyası içinde yer nerede burada çalışır istismar olup olmadığı? Ben saf bir görüntü olarak hizmet ediyorum.

Bunu önlemek için yolları nelerdir yoksa?

Teşekkürler.

5 Cevap

MIME türü kontroller GIFAR sorunu çözmez. 2009 en JREs zaten yamalı, ama sorunu çözmek istiyorsanız Ya vardır

  • Farklı bir etki alanından görüntüleri hizmet
  • Bir görüntü geçerli bir JAR içeriyorsa denetlemek için bir sunucu tarafı kodu çalıştırmak gibi söz here

Başka bir şey (bir yaşa JRE ile herhangi bir Java etkin tarayıcı dosyayı inkar kısa) belirli durumlarda başarısız olabilir.

Ayrıca sunucu altyapısı biraz açık olması gerekir bu teknikle iyi bir saldırı gerçekleştirmek için unutmayın (bir istek aynı etki geldiği gerçeği bunu sorar herhangi bir bilgi vermek gerektiği anlamına gelmez.)

(Veya başka) HTTP başlık alanı taklit edilebilir, çünkü mim-türünün kontrolü yeterli değildir. Bir dosya geçerli bir resim olduğunu doğrulamak için en iyi yolu, programlama görüntü olarak okumak için teşebbüs etmektir. Bir görüntü olarak ayrıştırılır olabilir, bunu kötü niyetli kod değil makul emin olabilirsiniz.

Related: ensuring uploaded files are safe

Çünkü bunu idare şekilde sunucu etkilememesi gerektiğini açıklamak gibi gizli her türlü istismar. Sadece zaten içinde işleme olmadan, ikili bilgi depolamak ve ikili bilgi almak ediyoruz. Sömürülen içeriği görüntülemek için çalışırken Tarayıcılar risk altında olabilir, ama standart görüntü türleri oldukça güvenlidir.

Eğer güvenli olmak istiyorsanız, her yüklenen dosya üzerinde bir anti-virüs çalıştırabilir. Bir * nix platformu üzerinde iseniz, endüstri standardı ClamAV kullanabilirsiniz.

Ben çok büyük bir görüntü dosyasını yüklemek için çalışan birinin daha endişeli olurdum.

Sen 2 şey yapabilirsiniz. Images.domain.com sizin görüntüleri hizmet. Bu başka bir sanal / fiziksel sunucu üzerinde olması, ya da sunucu üzerinde hiçbir açık portları bu etki alanından erişilebilir şekilde firewall'd olacaktır.

Yoksa java script bir here gibi (değil javascript) aracılığıyla görüntü dosyası çalıştırabilirsiniz. Görüntü gömülü bir kavanoz dosya varsa, bu size söyleyecektir.

Burada bu konuyla ilgili daha fazla bilgi:

http://www.gnucitizen.org/blog/java-jar-attacks-and-features/

Ben aslında bile, beni aydınlattığın için teşekkür Sorunuzun önce bu saldırı hakkında duymak, yani ilk kapalı vermedi! Etrafında Googling, iki farklı saldırı vektörleri burada temelde var gibi görünüyor. (Yani kökeni site olacak hem de maskelenmiş JAR dosyası işaret kötü niyetli bir siteye "normal" kullanıcıların ikna saldırganı dahil, hem JAR sitenizin "bağlamında" yürütme olacağı gerçeği ile yapmak zorunda .)

İlk saldırı uygulaması temelde sizin etki alanınız için kullanıcının oturum açma bilgilerini çalmak mümkün olacak anlamına gelir, kullanıcı tanımlama okumak mümkün olması ile ilgisi vardır.

İkinci bir etkili bir bypass uygulaması şimdi sunucusunun güvenlik duvarının arkasında kullanıcılardan biri kötü niyetli sayfasını (saldırganın sağlayan ziyaret ederse oldukça kötü olduğu etki, içindeki diğer prizlere bağlantıları açmak için izin gerçeği ile ilgisi var güvenlik duvarı).

Yani bu saldırı mutlaka doğrudan sunucu zarar vermez, ancak sizin kullanıcılara zarar vermez - ve umarım size kullanıcılar hakkında bakım. Onların güvenliğini sağlamak yapabileceğiniz iki şey zaten diğer cevapların çoğu söz edilmiştir ve this page özetlenmiştir.