Müzakirə

XenForo Shell & RCE Koruması

Başladan Suhazm · 24 yan 2026 02:42 · 66 Baxış · 0 Cavablar
Mövzunu Açan #0


Forumunuz ne kadar popülerse, script kiddie'lerin ve botların o kadar hedefi olur.
En yaygın saldırı yöntemi, bir eklenti veya upload açığı bulup içeriye "Shell" (zararlı PHP dosyası) atmak ve sunucuda komut çalıştırmaktır.


1. PHP Fonksiyonlarını Kısıtlamak


Saldırgan bir şekilde içeriye .php dosyası atsa bile, sunucu üzerinde komut çalıştıramamalıdır.
Shell dosyaları genelde Linux komutlarını çağırmak ister.
Biz bu çağrıları php.ini seviyesinde engelleyeceğiz.

Yapılması Gereken:Sunucundaki php.ini dosyasını aç ve disable_functions satırını bul. Aşağıdaki listeyi oraya ekle:


CODE
1disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source


DİKKAT



Bu işlemden sonra PHP servisini yeniden başlatmalısın.

Not: XenForo'nun resim işleme (ImageMagick) veya bazı yedekleme eklentileri exec fonksiyonuna ihtiyaç duyabilir. Eğer hata alırsan sadece exec i listeden çıkarabilirsin, ancak shell_exec ve system kesinlikle kapalı kalmalıdır.

2. Dizin Kilitleme (En Kritik Hamle)


XenForo'da kullanıcıların dosya yüklediği iki ana klasör vardır: /data ve /internal_data. Saldırganlar shell dosyasını avatar veya eklenti dosyası gibi gösterip buraya yüklemeye çalışır.

Eğer bu klasörlerde PHP çalışmasını engellersen, saldırgan dosyayı yüklese bile dosyayı açtığında kodlar çalışmaz, sadece ekrana yazı olarak gelir.

Nginx Kullanıyorsan (Server Block içine ekle):

CODE
1234location ~ ^/(data|internal_data)/.*\.php$ {
    deny all;
    return 403;
}


Apache / LiteSpeed Kullanıyorsan (.htaccess dosyasına ekle):/data ve /internal_data klasörlerinin içindeki .htaccess dosyalarına şu kodu ekle:

CODE
1234<Files *.php>
    Order Deny,Allow
    Deny from all
</Files>


Bu ayar, shell yiyen sitelerin %90'ını kurtaran altın kuraldır.



3. Dosya Yazma İzinleri (CHMOD)


Sunucunda her dosya yazılabilir olmamalıdır. Özellikle config.php dosyası sadece okunabilir olmalıdır.
  • Klasörler: 755 (Sadece sahibi yazabilir)
  • Dosyalar: 644 (Sadece sahibi yazabilir)
  • Config Dosyası: src/config.php dosyasını yapılandırdıktan sonra izinlerini 444 yapın. Böylece PHP üzerinden bile bu dosya değiştirilemez.




4. Admin Paneli (ACP) Güvenliği


Bir saldırgan shell atamasa bile Admin hesabını ele geçirirse "Şablonlar" (Templates) üzerinden zararlı kod ekleyebilir.



  • Config ile Editörü Kapatın: src/config.php dosyasına şu kodu ekleyerek Admin panelinden şablon ve dosya düzenlemeyi tamamen kapatın. Bu, admin şifreniz çalınsa bile saldırganın tema içine shell kodu gömmesini engeller.
    CODE
    1$config['designer']['enabled'] = false;







Cavab vermək üçün daxil olmalısınız.

0 sitat seçildi