Hidegvérű vbulletin. Melyik fórum a jobb vBulletin vagy PunBB

Biztosan többször is látott már fórumot a vBulletin motorról. A fórumok, mint olyanok, már nincsenek a divat csúcsán, de a vBulletin továbbra is az egyik legnépszerűbb motor. Legújabb (ötödik) verziójában több olyan sebezhetőséget találtak, amelyek nagymértékben tönkretehetik egy rendszergazda életét. Ebben a cikkben bemutatom, hogyan működnek.

Az első probléma a felhasználói adatok helytelen szűrése. Egy független biztonsági kutató jelentette, aki névtelenül kívánt maradni. A sérülékenység, bár vannak korlátai, kritikus státuszt kapott, mert lehetővé teszi bármilyen fájl beolvasását és tetszőleges kód futtatását a célrendszeren.

A második sebezhetőséget a TRUEL IT kutatói találták meg, és a CVE-2017-17672 azonosítót kapták. Ez a motorban az adatok deszerializálásának funkcióihoz kapcsolódik, és a támadók tetszőleges fájlok törlésére használhatják a rendszerben.

A két problémát részletező teljes jelentés a SecuriTeam Beyond Security programjának részeként jelent meg. Vannak PoC exploitok is a sebezhetőségek kimutatására. Menjünk végig ezen az egészen sorban.

előkészületek

A WAMP disztribúciót használtam szerverként.

Fájlok olvasása, parancsok végrehajtása

Tehát az első sebezhetőség oka a routesstring paraméter feldolgozása során fellépő helytelen logika, amely lehetővé teszi a támadó számára, hogy bármilyen fájlt hozzáadjon a lemezen az include-on keresztül, és végrehajtsa a benne lévő PHP-kódot.

Az útvonalunk a legfontosabb fájllal kezdődik - index.php, ahol az alkalmazás alapvető inicializálása történik.

/index.php
48: $app = vB5_Frontend_Application::init("config.php"); ... 60: $routing = $app->getRouter(); 61: $method = $routing->getAction(); 62: $sablon = $routing->getTemplate(); 63: $class = $routing->getControllerClass();

Nézzük a vB5_Frontend_Application::init metódust.

/includes/vb5/frontend/application.php
13: osztály vB5_Frontend_Application kiterjeszti vB5_ApplicationAbstract 14: ( 15: nyilvános statikus függvény init($configFile) 16: ( 17: szülő::init($configFile); 18: 19: self::$instance = new vB5_Application(Frontend2); self::$instance->router = new vB5_Frontend_Routing();21: self::$instance->router->setRoutes();

Itt a setRoutes metódusra vagyunk kíváncsiak.

47: nyilvános függvény setRoutes() 48: ( 49: $this->processQueryString(); ... 54: if (isset($_GET["routestring"])) 55: ( 56: $útvonal = $_GET[" routestring"];

A $path változó a userdata értéket a routestring paraméterből kapja. Beleadhatod a fórumoldal elérési útját, és az betöltődik.



Tegyük fel, hogy sikerült a /teszt .

A változó hozzárendelése után egy kódrészlet következik, amely megszabadul a sor elején lévő perjeltől, ha az jelen van.

/includes/vb5/frontend/routing.php
75: if (strlen($path) ÉS $path(0) == "/") 76: ( 77: $path = substr($path, 1); // $path = "test" 78: )
include\vb5\frontend\routing.php
83: if (strlen($elérési út) > 2) 84: ( 85: $ext = strtolower(substr($path, -4)) ; 86: if (($ext == ".gif") VAGY ($ext == ".png") VAGY ($ext == ".jpg") VAGY ($ext == ".css") 87: VAGY (strtolower(substr($path, -3)) == ".js" )) 88: ( 89: header("HTTP/1.0 404 Nem található"); 90: die(""); 91: ) 92: )

Amint látja, a csekk meglehetősen furcsa. A tiltott bővítmények közvetlenül a kódba varrt listája legalábbis zavaró. És általában már az a tény, hogy a kiterjesztést úgy kapjuk meg, hogy négy karaktert levágunk a sor végéről (85. sor), elgondolkodtató. Általában, ha egy gif, png, jsp, css vagy js kiterjesztésű fájlt próbálunk megszerezni, akkor a szerver 404-es oldalt ad vissza, és a szkript leáll. Ha minden ellenőrzés sikeres, a vB_Api_Route osztály getRoute metódusa a callApi segítségével kerül meghívásra. A felhasználó által megadott információk alapján megfelelő útvonalakat keres.

Továbbra is csak a tagok számára elérhető

1. lehetőség: Csatlakozzon a "webhely" közösséghez, hogy elolvassa az oldalon található összes anyagot

A közösségben való tagság a megadott időszakban hozzáférést biztosít az ÖSSZES Hacker anyaghoz, növeli a személyes kumulatív kedvezményt, és lehetővé teszi, hogy professzionális Xakep Score értékelést gyűjtsön!

Csak tájékoztató jellegű. Az adminisztráció nem vállal felelősséget annak tartalmáért. Ingyenes letöltés .


A vBulletin Connect v5.3.3 egy hatékony, méretezhető és teljesen testreszabható fórumcsomag az Ön webhelyéhez.

Változat: 5.3.3 (Nullazva: vBSupport.org)

Minimális követelmények php 5.6
Kompatibilitás a php 7.1-el
Új telepítéskor át kell neveznie a htaccess.txt fájlt .htaccess névre.
Frissítéskor törölje a fonts mappát (a frissítés megkezdése előtt).

Új lehetőségek:
Új felhasználói felület kiterjedt társadalmi integrációval;
Mobil eszközökre optimalizálva;
Egyszerűsített telepítés, kezelés és konfiguráció;
Új adatbázis-architektúra a jobb keresés és a jobb teljesítmény érdekében;
Kényelmes dinamikus tartalomváltás;
Videó- ​​és képmegosztáshoz kiterjesztve;
Teljes integráció a VigLink-kel;
Több mint 100 egyéb új funkció és fejlesztés;

Beágyazott alkalmazások:
Vitafórum
Csoportok
Szavazások
Blog

Keresőoptimalizáció:
SEO-barát URL-ek
Egyedi kulcsszó/leírás META tag

Rugalmasság:
Bővíthető felhasználói profilok
URL átírása
Interfész lokalizáció
metaadatokat

Megfelelőségi szabványok:
Tartalom átadása (RSS)
Tartalom terjesztés: RSS, Atom, XML
PHP v5.4 kompatibilis

Törésmentes integrált rendszer:
Egyszeri bejelentkezés szükséges
Az egyetlen engedélyezési rendszer
Az egyetlen rendszergazdai vezérlőpult
Hozzon létre egy folyamatos stílust/témát cikkek, blogok, fórum segítségével

Vezérlőpultok minden szerephez:
Adminisztratív ellenőrzések
Moderátor vezérlőpult
Felhasználói vezérlőpult
Közös engedélyezési rendszer
Power template motor a fejlett testreszabáshoz

Felhasználói vezérlés:
Többfelhasználós rendszer korlátlan szerepekkel és hatáskörökkel
Az érintett csoportok
Biztonság
Szemcsés erők
Problémaértesítés
Kompatibilis SSL
Captcha
Email megerősítés
Rendszergazdai vezérlőpult hírszerkesztője
Bejelentkezés "sztrájk" rendszer
Az e-mail cím és a jelszó módosításához a jelenlegi jelszó szükséges
Kompatibilis a Children's Online Privacy Protection Act (COPPA) 1998. évi törvényével

1. Lépjen a rendszergazdai vezérlőpultra:
Nyelvek és kifejezések - Nyelvek letöltése / feltöltése.
2. A "VAGY töltse fel az XML-fájlt a számítógépről" mezőbe írja be a cím elérési útját
vbulletin-language_ru.xml fájlt a számítógépén.
3. A "Nyelv felülírása" lehetőségnél válassza az "Új nyelv létrehozása" lehetőséget.
4. A "Feltöltött nyelv címe" mezőbe írja be a nyelv nevét.
A megadott adatok hiányában a nyelv "orosz (RU)" nevet kap.
5. Állítsa az „Igen” lehetőséget „Nyelvverzió figyelmen kívül hagyása” értékre.
6. Állítsa az "Igen" lehetőséget "Karakterkészlet olvasása XML fájlból" értékre.
7. Kattintson az "Importálás" gombra, és várja meg, amíg a letöltési folyamat befejeződik.
7A Ha szükséges, beállíthatja az új nyelvet "Alapértelmezett" nyelvvé,
a mellette lévő "Alapértelmezett" gombra kattintva.





  • Tól től:
  • Bejegyzett: 2014.07.07
  • Hozzászólások: 3,825
  • Én a PunBB-t szeretem:
  • 5 évek, 8 hónapok, 20 napok,
  • Tetszik: 480

Téma: Melyik fórum a jobb vBulletin vagy PunBB

A VBulletin (Vobla vagy Bulka, ahogy mi szeretjük nevezni) az egyik legrégebbi kereskedelmi fórummotor, amely PHP és MySQL technológiákkal készült. A legelső verzió 2000-es kiadása óta óriási munka történt a funkcionalitás fejlesztésén, ami lehetővé tette a VB számára, hogy bekerüljön a legjobb szoftvertermékek listájára.

A VBulletin licenc körülbelül 250 dollárba fog kerülni. Ne habozzon, ez teljesen indokolt pazarlás, és minden bizonnyal megtérül a munkaidő és az idegsejtek megtakarításával. Ennek a pénznek a nagy részét fejlesztők és programozók kapják, akik később a funkcionalitás finomítására, valamint javítások és kiegészítők kiadására használják fel (igen, az összes frissítést ingyenesen kézbesítjük az év során).

2 Válasz a következőtől: PunBB

  • Tól től: Moszkva, Szovhoznay 3, apt. 98
  • Bejegyzett: 2014.07.07
  • Hozzászólások: 3,825
  • Én a PunBB-t szeretem:
  • 5 évek, 8 hónapok, 20 napok,
  • Tetszik: 480

Nincs értelme felsorolni a VBulletin összes funkcióját. Szinte mindent megvalósítottak, amire a fórum rendszergazdáinak szüksége lehet. Podcasting, több idézet támogatása, társadalmi csoportokra és közösségekre való felosztás, minősítési rendszer (reputáció). Az alapcsomag kiegészíthető harmadik féltől származó bővítményekkel.

A VBulletin fórummotor komoly terhelést okoz a szerveren, különösen, ha harmadik féltől származó kiegészítők és szkriptek vannak telepítve. Annak érdekében, hogy a jövőben elkerülje az oldalak betöltésével kapcsolatos problémákat, ki kell választania egy normál tárhelyet. Főleg, ha nagy forgalmat jósol az erőforrásának a jövőben.

3 Válasz a következőtől: PunBB

  • Tól től: Moszkva, Szovhoznay 3, apt. 98
  • Bejegyzett: 2014.07.07
  • Hozzászólások: 3,825
  • Én a PunBB-t szeretem:
  • 5 évek, 8 hónapok, 20 napok,
  • Tetszik: 480

Re: Melyik fórum a jobb vBulletin vagy PunBB

A VBulletin a hackeléssel és spamrobotokkal szembeni rendkívül ellenálló képessége miatt nagy, komoly projektekhez ajánlott. Ezen kívül az alapértelmezett beállítások és konfigurációs fájlok könnyedén módosíthatók saját ízlésünk szerint, még nagyobb hatást érve el. Az interneten sok utasítás és útmutató található kézművesektől, bár nem szabad mindegyikben megbízni.

A VBulletin a lehető legjobb módon valósítja meg a nagyszabású ötleteket. Folyamatos frissítések, magas színvonalú szolgáltatás, további bővítmények és megbízható biztonsági mechanizmusok – mindez teljes mértékben indokolja a termékre költött pénzt.

4 Válasz a következőtől: PunBB

  • Tól től: Moszkva, Szovhoznay 3, apt. 98
  • Bejegyzett: 2014.07.07
  • Hozzászólások: 3,825
  • Én a PunBB-t szeretem:
  • 5 évek, 8 hónapok, 20 napok,
  • Tetszik: 480

Re: Melyik fórum a jobb vBulletin vagy PunBB

Nincs értelme az összes funkciót felsorolni - (vagy kiegészítésként) szinte mindent megvalósít, amire egy rendszergazdának szüksége lehet egy fórum létrehozásához. Van még több idézet, és támogatja a podcastokat, felhasználói közösségeket és társadalmi csoportokat, valamint rugalmas hírnévrendszert és még sok mást.

Természetesen a vBulletin rengeteg kiegészítővel és felhasználói közösséggel rendelkezik, így nem lesz karbantartási probléma, főleg, hogy van hivatalos támogatási szolgáltatás. A vBulletin hátránya, bár nem túl nagy, de a fizetős kiegészítők, például a felhasználói blogokhoz.

Összességében a fórumnak nincsenek hiányosságai. Pontosan megbízhatósága és mindenféle támadással szembeni ellenálló képessége miatt ajánlható nagy komoly projektekhez. Ebből kifolyólag jelentős terhelést jelent a szerveren, főleg a telepített kiegészítőkkel, de komoly projekteknél általában komoly szervereket és komoly rendszergazdákat használnak.

Bármely motor bizonyos műveleteket igényel a jobb és gyorsabb teljesítmény érdekében. Esetünkben a Vbulletin 4 optimalizálásáról fogunk beszélni.

Mivel fórumunk motorja folyamatosan frissül, ezért nem a Vbulletin korábbi verzióinak optimalizálásáról írok, hanem a 4.1.12-es verzióval kezdem. Bár lehetséges, ezt a cikket fokozatosan kiegészítem a korábbi verziók optimalizálásával, mivel nem mindenki vált át újabbakra.

Itt adok néhány példát, hogy a Vbulletin fórumot gyorsabbá és jobbá tegyük (a legegyszerűbb dolgokkal kezdve, haladva a bonyolultabbakra). Kérjük, ne feledje, hogy azok a dolgok, amelyek nekem működnek, nem feltétlenül működnek az Ön számára. Ezért minden változtatást saját veszélyére és kockázatára hajt végre.

Tiltsa le a felhasználói listát.

Van egy egyszerű módja, csak kapcsolja ki a funkciót az AdminCP-ben. (Beállítások -> Beállítások -> Felhasználólista beállításai)

Természetesen ez nem globális, és kihagyhatod, és nem csinálod, csak kérdezd meg magadtól, hogy szükséged van-e rá? Mióta van listája, a felhasználók rendezhetik azt, megnézhetik, kinek van több üzenete, hírneve stb. Használják a felhasználóid? Valószínűleg nem… mikor használta utoljára ezt a listát?

Számomra úgy tűnik, hogy ezek a listák csak a spammerek javát szolgálják, hiszen így lehet a legegyszerűbben összeszedni a Vbulletin 4 fórum összes tagjának nevét privát üzenetben spamelés céljából.

Ezenkívül a felhasználók listájának létrehozásához szükséges lekérdezés szörnyű az adatbázis-kiszolgálók számára, és súlyos terheléshez vezethet a kiszolgálón.

Megnövelt sebesség a privát üzenetek listájának feldolgozásakor.

Ha még soha nem importált privát üzeneteket külső forrásból Impex vagy más módon, nyugodtan bízhat a privát üzenetek azonosító szerinti rendezésében. Az azonosító szerinti rendezés biztosítja, hogy az adatbázis-kiszolgálónak ne kelljen a privát üzeneteket ideiglenes táblába helyeznie a rendezés végrehajtásához (sokkal gyorsabbá téve a lekérdezést).

Ehhez írnod ​​kell egy kis modult a private_messagelist_filterben található hellyel, és bele kell írni a következőket:

If ($sortfield == "pmtext.dateline") $sortfield = "pm.pmid";

És ennyi, csak ~20%-kal gyorsabbá tetted a private.php-t.


Beállítjuk a felhasználó legfrissebb üzeneteinek hatékonyabb keresését.

Megyünk az ftp-re, keressük meg az include / class_userprofile.php fájlt, és cseréljük le benne az adatokat a következőképpen, keressük meg:

$getlastposts = $this->registry->db->query_read_slave(" SELECT thread.title, thread.threadid, thread.forumid, thread.postuserid, post.postid, post.dateline FROM " . TABLE_PREFIX . "post AS post INNER JOIN " . TABLE_PREFIX . "szál AS szál USING (threadid) WHERE thread.visible = 1 ÉS post.userid = " . $this->userinfo["felhasználói azonosító"] . " AND post.visible = 1 ORDER BY post.dateline DESC LIMIT 20");

és cserélje ki erre (pontosabban ORDER BY):

$getlastposts = $this->registry->db->query_read_slave(" SELECT thread.title, thread.threadid, thread.forumid, thread.postuserid, post.postid, post.dateline FROM " . TABLE_PREFIX . "post AS post INNER JOIN " . TABLE_PREFIX . "szál AS szál USING (threadid) WHERE thread.visible = 1 ÉS post.userid = " . $this->userinfo["felhasználói azonosító"] . " AND post.visible = 1 ORDER BY post.postd DESC LIMIT 20");

Ez a lekérdezést kicsit pontosabbá teszi a jelenleginél. Így nem kell ideiglenes táblákba rendezni. Azon felhasználók számára, akiknek több mint 1000 üzenetük van, a kezdeti kérés körülbelül 10 másodpercet vesz igénybe, esetünkben sokkal kevesebbet. Ez elsősorban a Vbulletin 4 felhasználói profiljára vonatkozik a legújabb bejegyzések megjelenítésére.

Témamutató ellenőrzése.

Ha a fórumok alapértelmezett rendezési sorrendben vannak beállítva, és úgy vannak beállítva, mint ahogy fent tettük, győződjön meg arról, hogy minden indexe szerepel a táblázatukban. volt, hogy az indexek számomra ismeretlen okokból keresztezték egymást, és néhány fórum nem nyílt meg.

Azt javaslom, hogy állítsuk be úgy, hogy az alapértelmezett rendezés dátum legyen (az adatokat használó oszlop neve "dátumvonal"), és ennek megvalósításához hajtsuk végre a lekérdezést:

ALTER TABLE téma INDEX HOZZÁADÁSA forumid2_dp (fórum, látható, ragadós, dátumvonal)

Ez a kérés kifejezetten rám vonatkozik, esetedben a forumid2_dp legyen az Ön neve. Használat csak saját felelősségre.

Legyen óvatos a kiegészítők telepítésekor.

Attól, hogy valaki modulokat és hackeket gyárt, nem jelenti azt, hogy csak neked készültek, dolgoztak a nagy Vbulletin 4 fórumokon, és nincsenek benne hibák. Kiváló példa erre a hatalmas feltörésekről szóló jelentések, ezen vagy azon keresztül.

Persze feltételezhetjük, hogy a fejlesztők nem tudnak mindent elszámolni, és minden feltörést lapátolni, hogy ne ütközzenek, de... Ügyeljünk arra, hogy a Vbulletin modul ne okozzon nagy adatbázis-terhelést, ügyeljen arra, hogy a hack az SQL injekció vagy XSS elleni védelem lehetősége. Sajnos több ezer alkalmazás és módosítás létezik, és egyszerűen nem reális mindent ellenőrizni. Jobb lenne, ha az összes hacket magad írnád meg, vagy rendelnél valakitől. Kifejezetten az Ön és feladatai számára.

Ne használjon táblákat az InnoDB-ben.

Itt persze arcomba köphetnek, hiszen már milliószor volt szó erről a témáról, de saját tapasztalatom alapján elmondhatom, hogy 100%-ban a MyISAM asztalokon dolgozom minden akcióért. Néha 1000 kérést dolgozok fel másodpercenként.

Ha már kezd kiakadni, hol akad meg minden, amikor lekérdez, különösen az új Vbulletin keresésben, módosítsa az InnoDB táblákat a MyISAM-ban. A MyISAM gyorsabban válaszol az egyedi kérésekre, mert nincs szükség az egyes rekordok zárolásának kezelésére. Az InnoDB általában gyorsabb, de csak azért, mert lehetővé teszi a lekérdezések egyidejű futtatását. ha a lekérdezések már gyorsan futnak a MyISAM alatt, akkor nem kell váltani az InnoDB-re. IMHO.

Cikk értékelése

0%

Értékelés

felhasználói értékelés: 0,35 (1 szavazat)

Fő előnyei:

  • Gyors és hatékony adatbázis alapú
  • Sablon felület
  • Erőteljes kereső
  • Többnyelvű támogatás
  • Felhasználói profilok
  • Erőteljes és felhasználóbarát admin panel
  • Korlátlan számú rovat/téma/üzenet
  • Email Értesítések
  • COPPA támogatás

Tekintettel arra, hogy a gyártó nem ad telepíthető fórumos demót, a bal oldali verziót kellett telepítenem valami warezről letöltve. Így az utasítások nem feltétlenül egyeznek meg a licencelt fórum telepítési folyamatával. A telepítés után a helyszínt eltávolították, és nem rendeltetésszerűen használták.

A vBulletin telepítéséhez lépjen a hosting vezérlőpultra (a számlázásban a tárhelyrendelés mellett található fogaskerekes gomb), lépjen a "Fájlkezelőbe", lépjen a "www" könyvtárba. Kattintson a "Fájl feltöltése az aktuális könyvtárba" gombra:

Adja meg a fájl elérési útját a számítógépén:

Válassza ki az archívumot a vBulletin segítségével, csomagolja ki:

Töröljük azokat a fájlokat és könyvtárakat, amelyekre nincs szükségünk, beleértve a www tartományunk könyvtárát is – feltéve, hogy ott nincs semmi, amire szüksége van. Ha nem teszi be a webhely gyökérkönyvtárába, vagy van valami szükséges a webhelykönyvtárban, akkor nem kell törölnie a domain www könyvtárát:

Válassza ki a könyvtárat a vBulletin telepítővel, nevezze át:

Adja meg webhelyünk nevét a könyvtár neveként:

Lépjen a hosting vezérlőpult „Adatbázisok” részéhez:

Hozzon létre egy új MySQL adatbázist és egy felhasználót teljes hozzáférési jogokkal:

Kérjük, vegye figyelembe, hogy mind a felhasználó, mind az adatbázis előtagja automatikusan megjelenik a fiók nevével a tárhelykiszolgálón:

Az oldalunk főoldalára lépve a következő vBulletin hibát kapjuk:

A címsorban a telepítő elérési útján haladunk, hozzá kell adni az "install / install.php" elemet, amely után elindul a vBulletin fórum telepítőprogramja:

A vBulletin telepítője ellenőrzi a következő fájlokat:

Következő lépésként ellenőrizni kell az adatbázishoz való kapcsolódást, nem megy át – mert A fórum konfigurációs fájljában hibás adatok vannak megadva:

Visszatérünk a hosting vezérlőpulthoz, fájlkezelőhöz, megyünk a fórum könyvtárba, majd az "includes" alkönyvtárba. Nyissa meg a "config.php" fájlt:

Az adatbázisból a megfelelő adatokat beírjuk a konfigurációs fájlba, majd bezárjuk:

Visszatérünk a helyszínre, a telepítőhöz. nyomja meg az "F5" gombot, ezúttal minden rendben van, a kapcsolat az alappal együtt nőtt:

A vBulletin telepítő táblákat hoz létre az adatbázisban:

A vBulletin telepítője megváltoztatja néhány tábla típusát:

Adatok bevitele az adatbázisba:

Importált nyelvek:

Stílusok importálva:

Súgó importálva:

Nem érintjük meg az alapértelmezett beállításokat, a vBulletin telepítője mindent helyesen határozott meg:

Az alapértelmezett beállítások importálásra kerülnek:

Adja meg a vBulletin rendszergazda adatait:

A vBulletin adminisztrátor sikeresen hozzáadva:

A vBulletin telepítése a tárhelyen sikeresen befejeződött:

A telepítő utolsó tanácsát követve törölje a szükségtelen fájlokat:

A vBulletin fórumon megbizonyosodhat arról, hogy minden megfelelően működik: