vBulletin gözlemleri veya dinamik içeriği önbelleğe alma girişimleri. vBulletin gözlemleri veya dinamik içeriği önbelleğe alma girişimleri Kusursuz vbulletin

  • 20.03.2024

Muhtemelen vBulletin motorundaki forumları birçok kez görmüşsünüzdür. Forumlar artık moda değil ancak vBulletin hala en popüler motorlardan biri. En son (beşinci) versiyonunda, bir yöneticinin hayatını büyük ölçüde mahvedebilecek çeşitli güvenlik açıkları bulundu. Bu yazımda size bunların nasıl kullanıldığını anlatacağım.

İlk sorun, kullanıcı verilerinin yanlış filtrelenmesidir. Bu, isminin gizli kalmasını isteyen bağımsız bir güvenlik araştırmacısı tarafından bildirildi. Güvenlik açığı, bazı sınırlamalara sahip olmasına rağmen, hedef sistemde herhangi bir dosyayı okumanıza ve isteğe bağlı kod çalıştırmanıza izin verdiği için kritik durum aldı.

İkinci güvenlik açığı TRUEL IT araştırmacıları tarafından bulundu ve CVE-2017-17672 tanımlayıcısını aldı. Motordaki veri seri durumdan çıkarma özellikleriyle ilgilidir ve bir saldırgan tarafından sistemdeki rastgele dosyaları silmek için kullanılabilir.

SecuriTeam'in Beyond Security programının bir parçası olarak her iki konuyu da detaylandıran tam raporlar yayınlandı. Ayrıca güvenlik açıklarını göstermeye yönelik PoC istismarları da vardır. Tüm bunları sırasıyla inceleyelim.

Hazırlıklar

Sunucu olarak WAMP dağıtımını kullandım.

Dosyaları okuyun, komutları yürütün

Dolayısıyla, ilk güvenlik açığının nedeni, saldırganın diskteki herhangi bir dosyayı include yoluyla dahil etmesine ve içinde bulunan PHP kodunu çalıştırmasına izin veren Routestring parametresini işlerken yanlış mantıktır.

Yolumuz, uygulamanın temel başlatılmasının gerçekleştiği en önemli dosya olan index.php ile başlar.

/index.php
48: $app = vB5_Frontend_Application::init("config.php"); ... 60: $yönlendirme = $app->getRouter(); 61: $yöntem = $yönlendirme->getAction(); 62: $şablon = $yönlendirme->getTemplate(); 63: $class = $routing->getControllerClass();

vB5_Frontend_Application::init yöntemine bakalım.

/includes/vb5/frontend/application.php
13: vB5_Frontend_Application sınıfı vB5_ApplicationAbstract'ı genişletir 14: ( 15: public static function init($configFile) 16: ( 17: parent::init($configFile); 18: 19: self::$instance = new vB5_Frontend_Application(); 20: self::$instance->router = new vB5_Frontend_Routing(); 21: self::$instance->router->setRoutes();

Burada setRoutes yöntemiyle ilgileniyoruz.

47: genel işlev setRoutes() 48: ( 49: $this->processQueryString(); ... 54: if (isset($_GET["routestring"])) 55: ( 56: $path = $_GET[" rota dizesi"];

$path değişkeni, routerstring parametresindeki kullanıcı verileri değerini içerir. Forum sayfasının yolunu ona iletebilirsiniz ve yüklenecektir.



Diyelim ki /test'i geçtik.

Bir değişken atadıktan sonra satırın başındaki eğik çizgiyi (varsa) ortadan kaldıran bir kod parçası bulunur.

/includes/vb5/frontend/routing.php
75: if (strlen($yol) AND $yol(0) == "/") 76: ( 77: $yol = substr($yol, 1); // $yol = "test" 78: )
include\vb5\frontend\routing.php
83: if (strlen($yol) > 2) 84: ( 85: $ext = strtolower(substr($yol, -4)) ; 86: if (($ext == ".gif") VEYA ($ext) == ".png") VEYA ($ext == ".jpg") VEYA ($ext == ".css") 87: VEYA (strtolower(substr($path, -3)) == ".js" )) 88: ( 89: başlık("HTTP/1.0 404 Bulunamadı"); 90: die(""); 91: ) 92: )

Gördüğünüz gibi çek oldukça tuhaf. En azından, doğrudan kodun içine yazılan yasaklı uzantıların bir listesinin varlığı kafa karıştırıcıdır. Ve genel olarak, uzantının satırın sonundan (85. satır) dört karakter kesilerek elde edilmesi gerçeği kafa karıştırıcıdır. Genel olarak gif, png, jsp, css veya js uzantılı bir dosya almaya çalışırsak sunucu 404 sayfası döndürecek ve betiğin çalışması duracaktır. Tüm kontroller geçildiğinde vB_Api_Route sınıfındaki getRoute yöntemi callApi kullanılarak çağrılır. Kullanıcı tarafından sağlanan bilgilere göre uygun rotaları arar.

Devam sadece üyelere açıktır

Seçenek 1. Sitedeki tüm materyalleri okumak için "site" topluluğuna katılın

Belirtilen süre içinde topluluğa üye olmak, TÜM Hacker materyallerine erişmenizi sağlayacak, kişisel kümülatif indiriminizi artıracak ve profesyonel bir Xakep Skoru puanı biriktirmenize olanak tanıyacak!

Uzun zamandır bu konu hakkında yazmak istiyordum ama bir türlü fırsat bulamamıştım ama şimdi konu hakkında kısa bir not yayınlama şansım oldu. Öyleyse neden bir kullanıcının bir barındırma hizmeti seçmeden önce nelere bakması gerektiğinin bir listesini yayınlamıyorsunuz? Özellikle biz vbulletin kullananlar için. Her şeye kısaca tavsiye diyelim. Profesyonellerin zaten her şeyi anladığı açık, burada açıklanacak bir şey yok. Ancak yeni başlayanlar yine de karıştırılmalıdır. Sağlıksız bir eğilim gördüğüm için, Vbulletin 4'ün yöneticisi forumunun 5 $ karşılığında paylaşımlı barındırma üzerinde çalışmasını istiyor ve her şey uçup gidecek. bu bir daha asla olmayacak!

Hepimiz temelleri biliyoruz ama ev sahibimi ararken ben de bazı hatalar yaptım, o yüzden bazılarına bakalım.

Şirket aşırı satıcı mı?

Beyler size yalvarıyorum yeniden satılan (overseller) hostingleri kullanmayın. Büyük ihtimalle size uzun süre acı çekeceğiniz büyük bir "harman yeri" parçası verilecek. Peki hosting hizmetinin 50 elden yeniden satıldığını nasıl belirleyebiliriz? Burada hiçbir sır yok, size 500 veya 1500 GB alan (burada elbette abartıyorum ama çok fazla değil) ve 100 TB bant genişliği teklif edilecek ve hem de sadece 5 dolar karşılığında. Fazla iyi değil mi? Ama bunların hepsi saçmalık aslında, inanın 2-10 GB'tan fazla disk alanına ihtiyacınız yok. Ve 50-200 GB'lık bant genişliği özellikle ilk birkaç günde kulağınızı aşıyor.

Firma bayi mi?

Burada da çok dikkatli olmanız gerekiyor. Bayilerin çoğu gece uçuşu yapan şirketlerdir. Para alıyorlar, biraz çalışıyorlar, hepsi bu, onları bir daha göremezsin. Tüm dosyalarınız ve çalışmalarınız kaybolacak! Ama buna ihtiyacımız yok, değil mi? Bu şirketlerin hosting fiyatlarını beğenseniz bile, belirli bir şirketin ne kadar süredir faaliyet gösterdiğini mutlaka kontrol edin.

Veritabanı boyutu sınırı!

Çalışan vbulletin'inizi taşımayı planlıyorsanız bu çok önemli bir noktadır. Çeşitli barındırma sağlayıcılarının tekliflerine baktım, çoğu 100 MB teklif ediyor. İlk başta elbette bu sizin için yeterli olacaktır ancak forumunuz büyüdükçe bu size yetmeyecek ve bir VPS veya kiralık sunucuya geçmek zorunda kalacaksınız.

Veritabanına eşzamanlı bağlantı sayısı.

Ah evet bu %100 önemli. Özellikle Vbulletin ile çalışıyorsanız bu çok önemlidir. Çünkü zamanla eşzamanlı bağlantılar yalnızca büyür. Çoğu paylaşımlı hosting şirketi 10-250 teklif eder, hepsi hostinge bağlıdır. Sadece teknik desteği arayın ve onlara sorun. Ancak paylaşılan barındırma sitelerinin tümü bu bilgiye sahip değildir veya bunları sizinle paylaşmaz.

İncelemeler! Bu iyi mi kötü mü?

Teknik destek.

Çoğu barındırma sitesi, e-posta, biletler, icq, skype veya başka bir yöntemle 7/24 çalışan 24 saat teknik desteğe sahiptir. Peki size ne kadar süre yardımcı olacaklar? Bazen bu belirleyici bir rol oynar.

Teknik desteği arayın ve özellikle geceleri veya sabah 5-6'da yanıt almak için ne kadar beklediğinizi görün. Ve birkaç seçeneği, telefonu ve biletleri kontrol edin. Cevabını bildiğiniz basit sorular sorun, cevap sürelerini hesaplamamız gerekiyor. Anladım! Harika, kolay bir sorunun cevabını ne kadar beklediğinize bakın ve zor bir durumda size ne kadar cevap vereceklerini tahmin edin.

Bilinen büyük bir şirket mi yoksa yeni bilinmeyen bir şirket mi?

Prensip olarak, burada seçim sadece önünüzdedir; şirket ne kadar eski ve saygın olursa, fiyatlar da yeni oluşturulanlardan biraz daha yüksek olmayacaktır. Şahsen ben kendini bir şekilde kanıtlamış bir şirketi seçiyorum. Nedenini bilmek ister misin? Çok basit; bir gecede birçok yararlı dosyayı ve veritabanını kaybedebileceğinizi hayal edin. Aynı şey gizlilik politikası için de geçerlidir; buna uyulduğundan her zaman emin olamazsınız. Verileriniz kopyalanabilir ve klonlanmış siteler oluşturulabilir. Bu liste uzayıp gidiyor. Peki beni anlamışsındır :)

Ana avantajlar:

  • Hızlı ve verimli veritabanı çerçevesi
  • Şablonlardan oluşan arayüz
  • Güçlü arama motoru
  • Çoklu dil desteği
  • Kullanıcı Profilleri
  • Güçlü ve kullanışlı yönetici paneli
  • Sınırsız sayıda bölüm/konu/mesaj
  • E-postayla bildirimler
  • COPPA desteği

Üreticinin kurulabilecek bir forum demosu sağlamaması nedeniyle, bazı Vareznik'ten indirilen sol sürümü yüklemek zorunda kaldım. Bu nedenle talimatlar, lisanslama forumunun kurulum sürecine tam olarak uymayabilir. Kurulumdan sonra site silindi ve amacına uygun kullanılmadı.

VBulletin'i yüklemek için barındırma kontrol paneline gidin (faturalandırmada barındırma sırasının yanında dişli bulunan düğme), orada "Dosya Yöneticisi"nde, içinde "www" dizinine gidiyoruz. "Dosyayı geçerli dizine yükle" düğmesini tıklayın:

Bilgisayarınızdaki dosyanın yolunu belirtin:

vBulletin ile arşivi seçin ve paketini açın:

İhtiyacınız olmayan hiçbir şeyin orada olmaması koşuluyla, www alan adımızın dizini de dahil olmak üzere ihtiyaç duymadığımız dosya ve dizinleri siliyoruz. Eğer sitenin köküne koymadıysanız ya da site dizininde ihtiyaç duyulan bir şey varsa www domain dizinini silmenize gerek yoktur:

vBulletin yükleyicisinin bulunduğu dizini seçin ve yeniden adlandırın:

Dizin adı olarak sitemizin adını girin:

Barındırma kontrol panelinin "Veritabanları" bölümüne gidin:

Yeni bir MySQL veritabanı ve ona tam erişim haklarına sahip bir kullanıcı oluşturun:

Lütfen hem kullanıcının hem de veritabanının, barındırma sunucusundaki hesabınızın adına göre otomatik olarak bir önek aldığını unutmayın:

Sitemizin ana sayfasına gidiyoruz ve aşağıdaki vBulletin hatasını alıyoruz:

Adres çubuğuna yükleyicinin yolunu giriyoruz, “install/install.php” ekliyoruz ve ardından vBulletin forum kurulum programı başlıyor:

VBulletin yükleyicisi aşağıdaki dosyaların varlığını kontrol eder:

Bir sonraki adımda veritabanı bağlantısı kontrol ediliyor, geçmiyor - çünkü... Forum yapılandırma dosyası hatalı veriler içeriyor:

Barındırma kontrol paneline, dosya yöneticisine dönüyoruz, forumun bulunduğu dizine, ardından “includes” alt dizinine gidiyoruz. "config.php" dosyasını açın:

Veritabanından doğru verileri konfigürasyon dosyasına giriyoruz ve ardından kapatıyoruz:

Siteye, yükleyiciye dönüyoruz. “F5” e basın, bu sefer her şey yolunda, veritabanına bağlantı birlikte büyüdü:

VBulletin yükleyicisi veritabanında tablolar oluşturur:

VBulletin yükleyicisi bazı tabloların türlerini değiştirir:

Veriler veritabanına girilir:

İthal diller:

Stiller içe aktarıldı:

Yardım içe aktarıldı:

Varsayılan ayarlara dokunmuyoruz; vBulletin kurulum programı her şeyi doğru bir şekilde belirlemiştir:

Varsayılan ayarlar içe aktarılır:

VBulletin yönetici ayrıntılarını girin:

vBulletin yöneticisi başarıyla eklendi:

VBulletin'in hosting üzerine kurulumu başarıyla tamamlandı:

Yükleyicinin son tavsiyesine uyarak gereksiz dosyaları silin:

Her şeyin doğru çalıştığından emin olmak için vBulletin forumuna gidebilirsiniz:

VBulletin bir forum yöneticisinin ihtiyaç duyabileceği her şeyi sunuyor. Podcasting, çoklu alıntı desteği, topluluklara ve gruplara bölünme, kullanıcı itibarı - tüm bunlar, üçüncü taraf uzantılar yüklenerek genişletilebilen temel yapılandırmada mevcuttur.

Motor, özellikle eklentiler ve üçüncü taraf komut dosyaları yüklendikten sonra sunucuda yüksek bir yük oluşturur. Bu nedenle, normal çalışma için normal barındırma satın almanız gerekecek - kartvizit web sitesini bile yavaşlatan ücretsiz teklifleri ve kuruşlar için küçük planları unutun. Trafik ne kadar yüksek olursa, sunucudaki yük de o kadar büyük olur, bu nedenle bant genişliğini yedek olarak almanız gerekir. Tercihen sınırsız.

Vbulletin büyük projeler oluşturmak için tasarlandığından barındırmadan da tasarruf edemezsiniz. Motor, bilgisayar korsanlığı ve spam saldırılarına karşı dayanıklıdır, böylece ziyaretçiler kendilerini güvende hissedebilirler. Bir moderatöre ihtiyaç duyulacak, ancak reklam gönderilerinin konularını temizlemek için değil, tartışmaları yönetmek için.

Görünümün temel olarak özelleştirilmesi, sayfa eklenmesi ve düzenlenmesi için yerleşik tasarımcıyı kullanabilirsiniz. Oraya gitmek için siteye bir yönetici hesabı kullanarak giriş yapmanız gerekir. Kullanıcı adının yanında Açık olarak ayarlanması gereken bir anahtar vardır. Şifreyi tekrar girdikten sonra site tasarım modunda açılacaktır.

Tasarımcıda bir sayfa ekleyebilir, öğeleri bu sayfaya taşıyabilir ve ardından sitenin ana menüsüne giden sayfaya bir bağlantı ekleyebilirsiniz. Bütün bunlar görsel tasarımcıda olduğu kadar basit bir şekilde yapılır. Ancak arayüzün genel olarak özelleştirilmesi, yönetici panelinde uygulanabilecek programlama becerileri gerektirecektir.

Sunucu altyapısı ile etkileşime girmek istemeyen kullanıcılar için geliştiriciler vBulletin Cloud çözümünü sunuyor. Onun yardımıyla, motoru indirme, kurma ve yapılandırma aşamalarını atlayarak, tüm yönetim işlevleriyle tam olarak işleyen bir forum elde edebilirsiniz. Temel olarak, bir plan satın aldıktan sonra yapmanız gereken tek şey, ziyaretçileri siteye başlatmadan önce siteyi ihtiyaçlarınıza uyacak şekilde özelleştirmek.

Tasarım

Motorun resmi web sitesinde temel tasarım için temalar indirebilirsiniz. Siteye kolaylıkla kurulurlar ve web yöneticisinin istekleri doğrultusunda değiştirilebilirler. Stilleri yönetmek için yönetim panelinde bir Reklamcılık bölümü bulunmaktadır. İçinde şunları yapabilirsiniz:

  • Site arka planını değiştirin veya ekleyin.
  • Arka plan yerine resim ekleyin.
  • Stil dosyasını düzenleyin.

Yapıcı aracılığıyla temel değişiklikler yapılabilir. Örneğin logoyu değiştirmek için Başlık sekmesini açmanız ve uygun dosyayı yüklemeniz gerekir. Gezinme Çubuğu sekmesinde sitenin ana menüsünü yönetebilirsiniz: diğer sayfalara bağlantılar ekleyebilir ve kaldırabilir, sıralarını değiştirebilir, ad atayabilirsiniz.

Bu, programlama becerisi gerektirmez, yani forum motorlarıyla hiç çalışmamış acemi bir web yöneticisi bile temel görünüm ayarlarını yapabilir.

Arama Motoru Optimizasyonu (SEO)

CMS vBulletin'in arama motoru optimizasyonu için özel bir modülü yoktur. Ancak bu, forumda çalışmaya gerek olmadığı anlamına gelmez. Sitelerin, robot için sayfanın konusunu belirlemek için kullanılan H1 etiketine sahip olmaları şartı vardır. Dizin oluşturmayı ayarlamak için robots.txt dosyasını düzenlemeniz gerekir; dosyanın doğru şekilde nasıl biçimlendirileceğine ilişkin ipuçları, vBulletin'deki sitelere ayrılmış forumlarda bulunabilir.

Arama motoru optimizasyonu büyük ölçüde bireysel işlevlerin etkinleştirilmesine veya devre dışı bırakılmasına bağlıdır. Örneğin kodu kaydetmek için atlama menüsünü devre dışı bırakmak gerekir. Bu kadar çok küçük şey var, bunları yalnızca özel forumlarda bulabilirsiniz - vBulletin yardımında buna benzer hiçbir şey yoktur.

Yeni özellikler eklemek için SEO eklentileri mevcuttur. En ünlüsü VBSEO'dur. Onun yardımıyla, forumu arama motorlarının gereksinimlerini karşılayacak şekilde optimize edebilirsiniz: yönlendirmeleri ayarlayın, kopyaları kaldırın ve tek tek sayfaları dizine eklemenin dışında bırakın. Ana dezavantaj, VBSEO'nun sunucuda bir CMS için zaten oldukça büyük olan ek yük oluşturmasıdır.

Tarifeler

Yıllık güncellemelere sahip ömür boyu lisansın maliyeti 250 ABD dolarıdır. Bu parayla motorun tüm özellikleri mevcut:

  • Yerleşik uygulamalar: forum, gruplar, anketler, blog.
  • Arama Motoru Optimizasyon Araçları.
  • Profesyonel destek.
  • Esnek arayüz ayarları.
  • Tüm katılımcılar için kontrol panelleri: yönetici, moderatör, kullanıcı.
  • Kullanıcı yönetimi araçları.

250$ son fiyat değil. Bu parayla yalnızca motoru ömür boyu kullanma hakkını satın alırsınız.

  • Güncellemeleri almaya devam etmek için her yıl 209$ ödemeniz gerekir. Geliştiriciler ayrıca ücretli eklentiler de sunuyor:
  • Altbilgi markasını sitenizin tamamından kaldırmak, tek seferlik 169 ABD doları tutarında bir ücrettir.
  • Ek telefon veya bilet desteği aylık 49 ABD Doları veya yıllık 329 ABD Dolarıdır.
  • Profesyonel kurulum veya motor yükseltmesi - tek seferlik ücret 149$.

Forumun küçük ekranlarda güzel görünmesini istiyorsanız Mobil Paketi satın alabilirsiniz. Lisansın maliyeti 399 ABD doları, yenileme yenilemeleri ise yıllık 359 ABD dolarıdır. Mobil sürümün fiyatı ayrı olarak 199$'dır. Bu olmadan forum normalde yalnızca bilgisayarda kullanılabilir.

VBulletin Cloud'u seçerken üç plan mevcuttur: Bronze, Silver ve Gold. Hepsi şunları sunuyor:

  • En son sistem sürümüne otomatik güncelleme.
  • vBulletin için optimize edilmiş sunucuları kullanma.
  • Kullanılabilir disk alanını ihtiyaçlarınıza uyacak şekilde değiştirin.
  • Otomatik yedekleme oluşturma.

Minimum planın maliyeti aylık 19,95 ABD dolarıdır (yıllık ödeme yapılırsa 14,99 ABD doları). 25 GB bant genişliği, ücretsiz destek ve ücretsiz alan adı sunar. Bu, trafiğin az olduğu küçük forumlar için mükemmel bir çözümdür.

Silver'ın maliyeti artık aylık 39,95 ABD dolarıdır (yıllık ödenirse 29,99 ABD doları) ve 75 GB bant genişliğinin yanı sıra bilet sistemi aracılığıyla destek sağlar. Bu plan, orta düzeyde trafiğe sahip, büyüyen topluluklar için uygundur.

En yüksek plan aylık 74,95 $ (yıllık faturalandırılırsa 59,99 $) karşılığında Altın'dır. 200 GB bant genişliği, ücretsiz telefon desteği. Büyük forumlar için en uygun çözüm.

Avantajları ve dezavantajları

VBulletin çok uzun bir süredir piyasada olduğundan gelişmiş bir kullanıcı topluluğuna, ayrıntılı belgelere ve ilgili birçok materyale sahiptir: temalar, şablonlar, uzantılar. Diğer avantajların yanı sıra şunları not ediyoruz:

  • Çok sayıda tasarım teması.
  • Halihazırda 1000'den fazla eklenti ve modül kurarak işlevselliği genişletme imkanı.
  • İçerik oluşturma ve web sitesi yönetimi için basit araçlar.
  • Basitleştirilmiş tasarım özelleştirmesi.
  • Fotoğraf ve videoların kullanıcılar tarafından hızlı bir şekilde yayınlanması.
  • Uygun paketi satın alırken mobil cihazlar için optimize edilmiştir.

Daha önce başka bir forum motoru kullandıysanız VBulletin yönetim paneline alışmanız uzun zaman alacaktır. Fena değil - sadece alışılmadık ve bazı anlarda rahatsız edici.

VBulletin, özellikle birden fazla uzantı yüklerken her zaman yüksek bir sunucu yüküne sahip olmuştur. Daha güçlü bir plan satın almak için barındırma seçerken bu dikkate alınmalı ve bütçeye dahil edilmelidir. Maliyetler çok yüksektir ve kesinlikle paradan tasarruf edemezsiniz; bu, ziyaretçi akını olduğunda forumun "düşmesi" riskini taşır.

Geliştirme ekibini değiştirdikten sonra motorun güvenliği konusunda birçok soru ortaya çıkıyor. En kararlı sürüm 3.8 olarak kaldı. Dördüncü ve beşinci sürümler sürekli olarak güvenlik güncellemeleri alıyor; bu, geliştiricilerin ürünün piyasaya sürülmesinden sonra açıkları yamaladığını gösteriyor.