Sıradaki içerik:

Çin’in APT bilgisayar korsanları fidye yazılımı saldırılarına geçiyor

e
sv

Zend Framework uzaktan kod yürütme güvenlik açığı ortaya çıktı

05 Ocak 2021 22:51
avatar

admin

  • e 0

    Mutlu

  • e 0

    Eğlenmiş

  • e 0

    Şaşırmış

  • e 0

    Kızgın

  • e 0

    Üzgün

Zend Framework uzaktan kod yürütme güvenlik açığı ortaya çıktı

Bu hafta, Zend Framework  saldırganlar tarafından PHP sitelerinde uzaktan kod yürütülmesi için nasıl yararlanılabileceği konusunda güvenilmeyen bir seriyi kaldırma güvenlik açığı açıklandı.

CVE-2021-3007 olarak izlenen bu güvenlik açığı, Zend’in halefi olan Laminas Project ile oluşturulan uygulamaları da etkileyebilir. Zend Framework, 570 milyondan fazla kez yüklenmiş PHP paketlerinden oluşur  . Çerçeve, geliştiriciler tarafından nesneye yönelik web uygulamaları oluşturmak için kullanılır.

Güvenilmeyen seriyi kaldırma işleminden RCE’ye

Bu hafta, güvenlik araştırmacısı Ling Yizhou, Zend Framework 3.0.0’daki belirli bir gadget zincirinin güvenilmeyen seriyi kaldırma saldırılarında nasıl kötüye kullanılabileceğini açıkladı.

Açıktan yararlanılırsa, uzak saldırganların belirli koşullar altında savunmasız PHP uygulamalarında uzaktan kod yürütme (RCE) saldırıları gerçekleştirmesine izin verebilir. 

“Zend Framework 3.0.0, Stream.php’deki Zend Http Response Stream sınıfının __destruct yöntemiyle ilgili olarak içeriğin kontrol edilebilir olması durumunda uzaktan kod yürütülmesine yol açabilecek bir seriyi kaldırma güvenlik açığına sahiptir ” , MITRE’nin CVE için tavsiyesini belirtir.  2021-3007 .

Gerçek güvenilmeyen serileştirmenin savunmasız bir uygulamadan gelmesi ve Zend Framework’ün kendisinde mevcut olmaması gerekirken, Zend tarafından sağlanan sınıflar zinciri, bir saldırganın RCE’ye ulaşmasına izin verir.

Uygulama tarafından bir kullanıcıdan veya sistemden alınan kodlanmış veriler, uygulama tarafından kodu çözülmeden önce düzgün bir şekilde doğrulanmadığında, uygulamalarda güvenilmeyen seriyi kaldırma güvenlik açıkları ortaya çıkar.

Güvenlik açığı bulunan bir uygulama, alınan verileri uygun olmayan biçimde seri halinden çıkarabilir ve işleyebilir; bu, uygulama çökmelerinden (Hizmet Reddi) saldırganın uygulama bağlamında rasgele komutlar çalıştırmasına kadar çeşitli sonuçlara yol açabilir.

Zend durumunda, güvenlik açığı , bir PHP sihirli yöntemi olan Stream sınıfının yıkıcısından kaynaklanıyor . Nesne yönelimli programlamada, yapıcılar ve yıkıcılar, yeni bir sınıf nesnesi oluşturulduğunda ve yok edildiğinde sırasıyla çağrılan yöntemlerdir.

Yizhou  işaret bağlantı kaldırma ()  denilen yöntem Çayı  olan bir parametre, bir dosya adı, bir dosya silme yıkıcı bekler  dize  veri türü.  Gerçekte, streamName nesnesi dize olmayan bir türde olursa, uygulama çalıştırmasının sonunda yine de  yıkıcıya iletilir.

Bu nedenle, yalnızca bir dize değerini bekleyen yıkıcı, dizeye eşdeğer değerini almak için nesnenin __toString yöntemini çağırmaya çalışır.  Ancak __toString  yöntemi, nesnenin yaratıcısı veya nesnenin somutlaştırdığı sınıfın yaratıcısı tarafından kolayca özelleştirilebilir .

Örnek olarak, Yizhou , Zend Framework’ün Gravatar sınıfındaki __toString yönteminin  , programcıları tarafından, sonunda saldırganın keyfi kod yürütmek için doğrudan kontrole sahip olduğu değerleri döndürecek şekilde yazılmış olduğunu vurguladı  .

Bu,  Stream  sınıfının streamName’in  beklendiği bir Gravator  nesnesine  geçirilmesi  durumunda , belirli koşullar altında, tehdit aktörünün Zend ile oluşturulan savunmasız PHP uygulamaları içinde rastgele komutlar çalıştırabileceği anlamına gelir. 

Araştırmacı, PHP uygulaması tarafından çözümlendiğinde saldırganın çıktılarını işlenen web sayfalarındaki komutlarının çıktısını oluşturacak şekilde Zend’e serileştirilmiş nesnelerin aktarılmasının mümkün olduğu en az 2 senaryo gösterdi.

Bir kavram kanıtı (PoC) istismarında, araştırmacı web uygulamasının  phpinfo  sayfasının sistem komutunu “whoami” başarıyla ayrıştırdığını, serileştirilmiş bir HTTP isteğinden geçirdiğini ve Windows hesap adını “nt otorite sistem” döndürdüğünü gösterdi. 

 

 

  • Site İçi Yorumlar

En az 10 karakter gerekli