Sistem

Nginx PHP Zafiyeti

Herhangi bir PHP tabanlı web sitesini NGINX sunucusunda kullanıyorsanız ve daha iyi performans için PHP-FPM özelliği etkinleştirildiyse, yetkisiz saldırganların web sitenizi sunucunuzu uzaktan ele geçirmesine izin verebilecek yeni bir güvenlik açığına dikkat edin. CVE-2019-11043

olarak izlenen güvenlik açığı, vahşi doğada nadir görülmeyen bazı PHP-FPM yapılandırmalarına sahip web sitelerini etkiler ve bu durumun kusur için zaten bir kavram kanıtı (PoC) olarak değerlendirilebileceği için kolayca kullanılabilir halka açık. PHP-FPM , PHP programlama dilinde yazılmış komut dosyaları için gelişmiş ve yüksek verimli işleme sunan alternatif bir PHP FastCGI uygulamasıdır.

Asıl güvenlik açığı, PHP-FPM modülündeki bir “env_path_info” belleğinin bozulmasından kaynaklanıyor ve saldırganların güvenlik açığı bulunan web sunucularında uzaktan rasgele kod çalıştırmasına izin verebilir.

Bu güvenlik açığı, Wallarm’da bir güvenlik araştırmacısı olan Capture The Flag yarışmasında hata avlarken bir araştırma araştırmacısı olan Andrew Danau tarafından tespit edildi; bu durumda, iki araştırmacı, Omar Ganiev ve Emil Lerner tarafından tamamen çalışan bir uzaktan kod yürütme istismarını geliştirmek için kullanıldı. 

Hangi PHP tabanlı web siteleri bilgisayar korsanlarına karşı savunmasızdır?

Genel olarak piyasaya sürülen PoC istismarının özellikle PHP 7+ sürümlerini çalıştıran savunmasız sunucuları hedeflemek için tasarlanmış olmasına rağmen, PHP-FPM akış hatası önceki PHP sürümlerini de etkiler ve farklı şekilde silahlanabilir.

Kısacası, bir web sitesi savunmasız, eğer:

  • NGINX, PHP sayfa isteklerini PHP-FPM işlemcisine iletmek üzere yapılandırılmıştır,
  • fastcgi_split_path_info yönergesi konfigürasyonda bulunur ve ‘^’ sembolüyle başlayan ve ‘$’ sembolüyle biten düzenli bir ifade içerir.
  • PATH_INFO değişkeni fastcgi_param yönergesi ile tanımlanır,
  • Bir dosyanın var olup olmadığını belirlemek için try_files $ uri = 404 veya if (-f $ uri) gibi çekler yok.

Bu savunmasız NGINX ve PHP-FPM yapılandırması aşağıdaki örneğe benziyor:

nginx php-fpm hack

Burada, fastcgi_split_path_info yönergesi, PHP web sayfalarının URL’sini iki parçaya bölmek için kullanılır; bir yardım PHP-FPM motorunun değeri, komut dosyası adını öğrenmek için diğeri ise yol bilgisini içerir.

PoC RCE PHP FPM için nasıl çalışıyor?

Araştırmacılara göre, fastcgi_split_path_info yönergesini tanımlayan örnek düzenli ifade, gösterildiği gibi, newline karakterini kullanarak bölünmüş işlev sonunda yol bilgisini boş bırakacak şekilde manipüle edilebilir.

Ardından, FPM kodunda, env_path_info’nun sunucudaki dosyanın varlığını doğrulamadan php komut dosyasının yoluna eşit bir ön ekine sahip olduğunu yanlış olarak kabul eden bir aritmetik işaretçisi bulunduğundan, sorunun üzerine verilerin üzerine yazmak için bir saldırgan tarafından yararlanılabilir. Hedeflenen web sitelerinin özel hazırlanmış URL’lerini talep ederek bellekte.

php-fpm hack

 

php-fpm kod yürütme kesmek

Arka planda PoC sömürüsü [ 1  (PHuiP-FPizdaM), 2 ] araştırmacıları hafızayı manipüle etmek ve ekran görüntüsünde gösterildiği gibi PHP-FPM yapılandırma dosyasında özel php.ini değerleri eklemek için bu sorunları bir araya getirdiler. hedeflenen bir sunucu, saldırganların bir web kabuğu kullanarak rasgele kod yürütmesine izin veriyor.

 

Saldırgan, “Dikkatli bir şekilde seçilen URL yolu ve sorgu dizesinin uzunluğunu kullanan bir saldırgan, path_info’yu tam olarak _fcgi_data_seg yapısının ilk baytına işaret edebilir. İçine sıfır koymak, char = pos` alanını geriye doğru hareket ettirir ve FCGI_PUTENV’i izleyerek bazı verilerin üzerine yazar diğer hızlı cgi değişkenleri) komut dosyası yolu ile “, araştırmacılar PHP projesine gönderilen bir hata raporunda ” dedi .

 

“Bu tekniği kullanarak, sahte bir PHP_VALUE fcgi değişkeni oluşturabildim ve daha sonra kod yürütme elde etmek için dikkatli bir şekilde seçilen config değerleri zinciri kullandım.”

 

FPM hatasını düzeltmek için PHP 7 güncellemeleri yapıldı

Başarılı sömürü için ön koşullar listesi, yukarıda belirtildiği gibi nadir değildir çünkü savunmasız yapılandırmalar bazı web barındırma sağlayıcıları tarafından kullanılmakta ve Internet’te birçok PHP FPM dersinin bir parçası olarak kullanılabilmektedir.

Bu tür etkilenen web barındırma sağlayıcı bir serbest Nextcloud olan danışma “varsayılan Nextcloud Nginx yapılandırması da bu saldırıya karşı savunmasız olduğu” ve sistem yöneticilerinin öneren acil müdahalelerde bulunması yönündeki uyarı kullanıcılar dün.

Bu güvenlik açığı için bir düzeltme eki, araştırmacıların PHP geliştirici ekibine bildirmesinden neredeyse bir ay sonra, dün yayımlandı.

PoC istisnası zaten mevcut olduğundan ve yama henüz dün yayınlandığından, bilgisayar korsanlarının savunmasız web sitelerini aramak için interneti taramaya başlamış olması muhtemeldir.

Bu nedenle, kullanıcılara PHP’yi en son PHP 7.3.11 ve PHP 7.2.24’le güncellemeleri önemle tavsiye edilir.. Güvenlik açığı bulunan konfigürasyonu kullanmasanız bile, sadece yapın.

Click to comment

You must be logged in to post a comment Login

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

popüler yazılar

To Top
%d blogcu bunu beğendi: