Chladnokrvný vbulletin. Ktoré fórum je lepšie vBulletin alebo PunBB

Určite ste už viackrát videli fóra na engine vBulletin. Fóra ako také už nie sú na vrchole módy, no vBulletin je stále jedným z najpopulárnejších motorov. V jeho najnovšej (piatej) verzii sa našlo niekoľko zraniteľností, ktoré môžu správcovi poriadne zničiť život. V tomto článku vám ukážem, ako fungujú.

Prvým problémom je nesprávne filtrovanie používateľských údajov. Informoval o tom nezávislý bezpečnostný výskumník, ktorý si želal zostať v anonymite. Zraniteľnosť, aj keď má určité obmedzenia, získala stav kritická, pretože umožňuje čítanie ľubovoľných súborov a spúšťanie ľubovoľného kódu na cieľovom systéme.

Druhú zraniteľnosť našli výskumníci z TRUEL IT a získali identifikátor CVE-2017-17672. Súvisí s funkciami deserializácie dát v motore a môže byť použitý útočníkom na odstránenie ľubovoľných súborov v systéme.

Úplné správy s podrobnosťami o oboch problémoch boli zverejnené ako súčasť programu Beyond Security spoločnosti SecuriTeam. Existujú aj exploity PoC na demonštráciu zraniteľností. Poďme si to celé prejsť po poriadku.

prípravky

Ako server som použil distribúciu WAMP.

Čítanie súborov, vykonávanie príkazov

Dôvodom prvej zraniteľnosti je teda nesprávna logika pri spracovaní parametra routesstring, ktorý útočníkovi umožňuje pridať ľubovoľný súbor na disk prostredníctvom include a spustiť PHP kód, ktorý sa v ňom nachádza.

Naša cesta začína najdôležitejším súborom – index.php, kde prebieha základná inicializácia aplikácie.

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

Pozrime sa na metódu vB5_Frontend_Application::init.

/includes/vb5/frontend/application.php
13: trieda vB5_Frontend_Application rozširuje vB5_ApplicationAbstract 14: ( 15: verejná statická funkcia init($configFile) 16: ( 17: parent::init($configFile); 18: 19: self::$instance = new vB5_Frontend_A; self::$instance->router = new vB5_Frontend_Routing(); 21: self::$instance->router->setRoutes();

Tu nás zaujíma metóda setRoutes.

47: verejná funkcia setRoutes() 48: ( 49: $this->processQueryString(); ... 54: if (isset($_GET["routestring"])) 55: ( 56: $cesta = $_GET[" routestring"];

Premenná $path získa hodnotu userdata z parametra routestring. Môžete do nej zadať cestu na stránku fóra a tá sa načíta.



Povedzme, že sme prešli /testom .

Po priradení premennej nasleduje kúsok kódu, ktorý sa zbaví lomky na začiatku riadku, ak je prítomná.

/includes/vb5/frontend/routing.php
75: if (strlen($cesta) AND $cesta(0) == "/") 76: ( 77: $cesta = substr($cesta, 1); // $cesta = "test" 78: )
obsahuje\vb5\frontend\routing.php
83: if (strlen($cesta) > 2) 84: ( 85: $ext = strtolower(substr($cesta, -4)) ; 86: if (($ext == ".gif") ALEBO ($ext == ".png") ALEBO ($ext == ".jpg") ALEBO ($ext == ".css") 87: OR (strtolower(substr($cesta, -3)) == ".js" )) 88: ( 89: hlavička("HTTP/1.0 404 sa nenašlo"); 90: die(""); 91: ) 92: )

Ako vidíte, kontrola je dosť zvláštna. Prinajmenšom mätúca je prítomnosť zoznamu zakázaných rozšírení všitých priamo do kódu. A vo všeobecnosti samotná skutočnosť, že rozšírenie sa získa vyrezaním štyroch znakov z konca riadku (riadok 85), je záhadná. Vo všeobecnosti, ak sa pokúsime získať súbor s príponami gif, png, jsp, css alebo js, ​​server vráti stránku 404 a skript sa zastaví. Keď prejdú všetky kontroly, metóda getRoute z triedy vB_Api_Route sa zavolá pomocou callApi . Vyhľadáva vhodné trasy na základe informácií poskytnutých používateľom.

Pokračovanie dostupné len pre členov

Možnosť 1. Pripojte sa ku komunite „stránky“ a prečítajte si všetky materiály na stránke

Členstvo v komunite počas určeného obdobia vám umožní prístup ku VŠETKÝM materiálom hackerov, zvýši vašu osobnú kumulatívnu zľavu a umožní vám získať profesionálne hodnotenie Xakep Score!

Len na informačné účely. Správa nezodpovedá za jej obsah. Stiahnutie zdarma .


vBulletin Connect v5.3.3 je výkonný, škálovateľný a plne prispôsobiteľný balík fóra pre váš web.

Verzia: 5.3.3 (vynulované vBSupport.org)

Minimálne požiadavky php 5.6
Kompatibilita s php 7.1
Pri novej inštalácii musíte premenovať súbor htaccess.txt na .htaccess
Pri aktualizácii odstráňte priečinok s písmami (pred spustením aktualizácie).

Nové príležitosti:
Nové používateľské rozhranie s rozsiahlou sociálnou integráciou;
Optimalizované pre mobilné zariadenia;
Zjednodušená inštalácia, správa a konfigurácia;
Nová architektúra databázy pre lepšie vyhľadávanie a lepší výkon;
Pohodlná dynamická zmena obsahu;
Rozšírené na zdieľanie videa a obrázkov;
Plná integrácia s VigLink;
Viac ako 100 ďalších nových funkcií a vylepšení;

Vstavané aplikácie:
Diskusné fórum
skupiny
Ankety
Blog

Optimalizácia pre vyhľadávače:
SEO Friendly URL
Vlastné kľúčové slovo/popis META tag

Flexibilita:
Rozšíriteľné užívateľské profily
Prepisovanie URL
Lokalizácia rozhrania
metaúdaje

Normy zhody:
Syndikovať obsah (RSS)
Syndikácia obsahu: RSS, Atom, XML
Kompatibilné s PHP v5.4

Nerozbitný integrovaný systém:
Zahŕňa jedno prihlásenie
Jediný systém povolení
Jediný administrátorský ovládací panel
Vytvorte nepretržitý štýl/tému prostredníctvom článkov, blogov, fóra

Ovládacie panely pre každú rolu:
Administratívne kontroly
Ovládací panel moderátora
Používateľský ovládací panel
Spoločný systém povolení
Výkonový nástroj šablón pre pokročilé prispôsobenie

Používateľské ovládanie:
Viacužívateľský systém s neobmedzenými rolami a právomocami
Zapojené skupiny
Bezpečnosť
Granulované sily
Upozornenie na problém
Kompatibilné SSL
Captcha
Overenie e-mailom
Editor správ v ovládacom paneli
Prihlasovací "strike" systém
Zmeny e-mailu a hesla vyžadujú aktuálne heslo
Kompatibilné so zákonom o ochrane súkromia detí online (COPPA) z roku 1998

1. Prejdite na ovládací panel správcu:
Jazyky a frázy – jazyky na stiahnutie/nahranie.
2. Do poľa „BUĎ nahrajte súbor XML z vášho počítača“ zadajte cestu k
vbulletin-language_ru.xml vo vašom počítači.
3. V možnosti „Prepísať jazyk“ vyberte „Vytvoriť nový jazyk“
4. Do poľa „Názov pre odovzdaný jazyk“ zadajte názov jazyka.
V prípade absencie zadaných údajov sa jazyk bude nazývať „ruština (RU)“
5. Nastavte "Áno" na "Ignorovať jazykovú verziu"
6. Nastavte "Áno" na "Načítať znakovú sadu zo súboru XML"
7. Kliknite na tlačidlo „Importovať“ a počkajte na dokončenie procesu sťahovania.
7A V prípade potreby môžete nový jazyk nastaviť ako „predvolený“ jazyk,
kliknutím na tlačidlo „Predvolené“ vedľa neho.





  • Od:
  • Registrovaný: 2014.07.07
  • Príspevky: 3,825
  • Mám rád PunBB:
  • 5 roky, 8 mesiace, 20 dni,
  • Páči sa: 480

Téma: Ktoré fórum je lepšie vBulletin alebo PunBB

VBulletin (Vobla alebo Bulka, ako ho radi nazývame) je jedným z najstarších motorov komerčných fór napísaných pomocou technológií PHP a MySQL. Od vydania úplne prvej verzie v roku 2000 sa vykonala obrovská práca na zlepšení funkčnosti, čo umožnilo VB dostať sa do zoznamu najlepších softvérových produktov.

Licencia VBulletin vás bude stáť približne 250 dolárov. Neváhajte, je to úplne opodstatnené plytvanie a určite sa vám vyplatí úsporou pracovného času a nervových buniek. Väčšina z týchto peňazí ide vývojárom a programátorom, ktorí ich neskôr použijú na dolaďovanie funkcionality a vydávanie záplat a doplnkov (áno, všetky aktualizácie vám budú počas roka doručené zadarmo).

2 Odpovedať od PunBB

  • Od: Moskva, Sovchoznay 3, apt. 98
  • Registrovaný: 2014.07.07
  • Príspevky: 3,825
  • Mám rád PunBB:
  • 5 roky, 8 mesiace, 20 dni,
  • Páči sa: 480

Nemá zmysel vymenúvať všetky funkcie VBulletinu. Implementovali takmer všetko, čo by správcovia fór mohli potrebovať. Podcasting, podpora multiquotingu, rozdelenie do sociálnych skupín a komunít, systém hodnotenia (reputácia). Základný balík je možné doplniť rozšíreniami tretích strán.

Motor fóra VBulletin vytvára vážne zaťaženie servera, najmä ak sú nainštalované doplnky a skripty tretích strán. Aby ste sa v budúcnosti vyhli problémom s načítavaním stránok, budete si musieť vybrať bežný hosting. Najmä ak v budúcnosti predpovedáte veľkú návštevnosť vášho zdroja.

3 Odpovedať od PunBB

  • Od: Moskva, Sovchoznay 3, apt. 98
  • Registrovaný: 2014.07.07
  • Príspevky: 3,825
  • Mám rád PunBB:
  • 5 roky, 8 mesiace, 20 dni,
  • Páči sa: 480

Re: Ktoré fórum je lepšie vBulletin alebo PunBB

VBulletin sa vzhľadom na jeho extrémnu odolnosť voči hackerským a spamovacím robotom odporúča na použitie vo veľkých, serióznych projektoch. Okrem toho je možné predvolené nastavenia a konfiguračné súbory jednoducho zmeniť podľa vlastného vkusu, čím sa dosiahne ešte väčší efekt. Na internete je veľa návodov a návodov od remeselníkov, aj keď nie všetkým treba dôverovať.

VBulletin, implementuje rozsiahle nápady najlepším možným spôsobom. Neustále aktualizácie, vysokokvalitné služby, ďalšie rozšírenia a spoľahlivé bezpečnostné mechanizmy - to všetko plne ospravedlňuje peniaze vynaložené na produkt.

4 Odpovedať od PunBB

  • Od: Moskva, Sovchoznay 3, apt. 98
  • Registrovaný: 2014.07.07
  • Príspevky: 3,825
  • Mám rád PunBB:
  • 5 roky, 8 mesiace, 20 dni,
  • Páči sa: 480

Re: Ktoré fórum je lepšie vBulletin alebo PunBB

Nemá zmysel uvádzať všetky funkcie - implementuje (alebo v dodatkoch) takmer všetko, čo môže administrátor potrebovať na vytvorenie fóra. K dispozícii je tiež viacnásobné citovanie a podpora pre podcasting, komunity používateľov a sociálne skupiny, flexibilný systém reputácie a oveľa viac.

VBulletin má samozrejme veľké množstvo doplnkov a používateľských komunít, takže nebudú žiadne problémy s údržbou, najmä preto, že existuje oficiálna služba podpory. Nevýhodou vBulletinu, aj keď nie veľmi veľkou, sú platené doplnky napríklad pre užívateľské blogy.

Celkovo fórum nemá žiadne nedostatky. Možno ho odporučiť pre veľké seriózne projekty práve pre jeho spoľahlivosť a odolnosť voči všetkým druhom útokov. Výsledkom je značné zaťaženie servera, najmä ak sú nainštalované doplnky, ale pre seriózne projekty sa zvyčajne používajú seriózne servery a seriózni správcovia.

Každý motor vyžaduje určité akcie na optimalizáciu pre lepší a rýchlejší výkon. V našom prípade budeme hovoriť o optimalizácii Vbulletin 4.

Keďže engine nášho fóra je neustále aktualizovaný, nebudem písať o optimalizácii starších verzií Vbulletinu, ale začnem verziou 4.1.12. Aj keď je to možné, postupne budem tento článok dopĺňať o optimalizácie pre predchádzajúce verzie, keďže nie každý prechádza na novšie.

Tu uvediem niekoľko príkladov, aby bolo vaše fórum Vbulletin rýchlejšie a lepšie (začínajúc tými najjednoduchšími vecami a prechádzajúcimi k tým zložitejším). Prosím, majte na pamäti, že veci, ktoré fungujú pre mňa, nemusia nutne fungovať pre vás. Všetky zmeny preto robíte na vlastné nebezpečenstvo a riziko.

Zakázať zoznam používateľov.

Existuje jednoduchý spôsob, stačí vypnúť funkciu v AdminCP. (Nastavenia -> Možnosti -> Možnosti zoznamu používateľov)

Samozrejme, nie je to globálne a môžete to preskočiť a nerobiť to, len sa spýtajte sami seba, či to potrebujete? Odkedy majú zoznam, používatelia ho môžu triediť, vidieť, kto má viac správ, reputáciu atď. Používajú to vaši používatelia? Pravdepodobne nie... kedy ste tento zoznam naposledy použili?

Pokiaľ ide o mňa, zdá sa mi, že tieto zoznamy sú len v prospech odosielateľov spamu, pretože toto je najjednoduchší spôsob, ako zhromaždiť všetky mená členov fóra Vbulletin 4 na rozosielanie nevyžiadanej pošty v súkromných správach.

Okrem toho dopyt, ktorý je potrebný na vygenerovanie zoznamu používateľov, je pre databázové servery hrozný a môže viesť k veľkému zaťaženiu servera.

Zvýšená rýchlosť pri spracovaní zoznamu súkromných správ.

Ak ste nikdy neimportovali súkromné ​​správy z externých zdrojov pomocou Impex alebo iných prostriedkov, môžete sa pokojne spoľahnúť na triedenie podľa ID pri súkromných správach. Triedenie podľa ID zaistí, že váš databázový server nebude musieť na vykonanie triedenia ukladať súkromné ​​správy do dočasnej tabuľky (dotaz je oveľa rýchlejší).

Ak to chcete urobiť, musíte napísať malý modul s umiestnením v private_messagelist_filter a napísať doň nasledovné:

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

A je to, práve ste spravili private.php ~20% rýchlejšie.


Nakonfigurujeme efektívnejšie vyhľadávanie najnovších správ od používateľa.

Prejdeme na ftp, vyhľadáme súbor include / class_userprofile.php a nahradíme v ňom údaje takto:

$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 PRIPOJTE SA " . TABLE_PREFIX . "vlákno AKO vlákno POUŽITIE (vlákno) WHERE thread.visible = 1 AND post.userid = " . $this->userinfo["userid"] . " A post.visible = 1 OBJEDNÁVKA PODĽA post.dateline DESC LIMIT 20");

a nahraďte ho týmto (konkrétnejšie OBJEDNAŤ PODĽA):

$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 PRIPOJTE SA " . TABLE_PREFIX . "vlákno AKO vlákno POUŽITIE (vlákno) WHERE thread.visible = 1 AND post.userid = " . $this->userinfo["userid"] . " A post.visible = 1 OBJEDNAŤ PODĽA post.postid DESC LIMIT 20");

Vďaka tomu je dopyt o niečo presnejší, ako je v súčasnosti. Nemusíte teda triediť do dočasnej tabuľky. Používateľom, ktorí majú viac ako 1000 správ, by počiatočná požiadavka trvala približne 10 sekúnd, v našom prípade oveľa menej. Týka sa to predovšetkým používateľského profilu Vbulletin 4 na zobrazovanie najnovších príspevkov.

Kontrola indexu tém.

Ak majú vaše fóra predvolené poradie zoradenia a sú nastavené nezmenené, ako sme to urobili vyššie, uistite sa, že všetky vaše indexy sú v ich tabuľkách. boli prípady, keď sa indexy z mne neznámych príčin pretli a niektoré fóra sa neotvorili.

Navrhujem, aby predvolené triedenie bolo podľa dátumu (stĺpec, ktorý používa tieto údaje, sa nazýva "dátumová čiara") a na implementáciu vykonáme dotaz:

ALTER TABLE vlákno ADD INDEX forumid2_dp (forumid, viditeľné, lepivé, dátumová čiara)

Táto žiadosť sa týka konkrétne mňa, vo vašom prípade by forumid2_dp malo byť vaše meno. Použitie na vlastné riziko.

Pri inštalácii doplnkov buďte opatrní.

To, že niekto vyrába moduly a hackuje, neznamená, že je vyrobený len pre vás, pracoval na veľkých fórach Vbulletin 4 a nemá chyby. Výborným príkladom sú správy o masívnych hackoch, cez ten či onen hack.

Samozrejme, dá sa predpokladať, že vývojári nemôžu počítať so všetkým a nahodiť všetky hacky, aby neboli v konflikte, ale... Uistite sa, že modul Vbulletin nespôsobuje veľké zaťaženie databázy, uistite sa, že hack má potenciál chrániť pred SQL injection alebo XSS . Žiaľ, aplikácií a úprav sú tisíce a skontrolovať všetko jednoducho nie je reálne. Bolo by lepšie, keby ste si všetky hacky napísali sami, alebo si ich od niekoho objednali. Špeciálne pre vás a vaše úlohy.

V InnoDB nepoužívajte tabuľky.

Tu mi môžu samozrejme napľuť do tváre, keďže táto téma už bola miliónkrát rozoberaná, no z vlastnej skúsenosti môžem povedať, že na MyISAM stoloch fungujem na 100% pri akejkoľvek akcii. Niekedy spracujem 1000 požiadaviek za sekundu.

Ak už začínate zúriť, kde všetko visí pri dopytovaní, najmä v novom vyhľadávaní vo Vbulletine, zmeňte tabuľky InnoDB v MyISAM. MyISAM rýchlejšie reaguje na jednotlivé požiadavky, pretože nie je potrebné spravovať zamykanie jednotlivých záznamov. InnoDB je vo všeobecnosti rýchlejší, ale len preto, že umožňuje súbežné spustenie dopytov. ak vaše dotazy už bežia rýchlo pod MyISAM, nie je potrebné prepínať na InnoDB. PODĽA MÔJHO NÁZORU.

Hodnotenie článku

0%

Hodnotenie

užívateľské hodnotenie: 0,35 (1 hlas)

Hlavné výhody:

  • Rýchla a efektívna databáza
  • Rozhranie šablóny
  • Výkonný vyhľadávací nástroj
  • Podpora viacerých jazykov
  • Používateľské profily
  • Výkonný a užívateľsky prívetivý administračný panel
  • Neobmedzený počet sekcií/tém/správ
  • E-mailové upozornenia
  • Podpora COPPA

Vzhľadom na to, že výrobca neposkytuje demo na fórum, ktoré je možné nainštalovať, musel som nainštalovať ľavú verziu stiahnutú z nejakého warezu. Pokyny sa teda nemusia presne zhodovať s procesom inštalácie licencovaného fóra. Po inštalácii bola lokalita odstránená a nepoužívala sa na zamýšľaný účel.

Ak chcete nainštalovať vBulletin, prejdite na ovládací panel hostingu (tlačidlo s ozubeným kolieskom vedľa objednávky hostingu vo fakturácii), prejdite do „Správcu súborov“ a prejdite do adresára „www“. Kliknite na tlačidlo „Nahrať súbor do aktuálneho adresára“:

Zadajte cestu k súboru v počítači:

Vyberte archív pomocou vBulletin, rozbaľte ho:

Odstraňujeme súbory a adresáre, ktoré nepotrebujeme, vrátane adresára našej www domény – za predpokladu, že tam nemáte nič, čo potrebujete. Ak ho nevložíte do koreňového adresára stránky alebo je niečo potrebné v adresári stránky, nemusíte odstraňovať www adresár domény:

Vyberte adresár s inštalačným programom vBulletin, premenujte ho:

Ako názov adresára zadajte názov našej stránky:

Prejdite do sekcie "Databázy" ovládacieho panela hostingu:

Vytvorte novú databázu MySQL a používateľa s plnými prístupovými právami k nej:

Upozorňujeme, že používateľ aj databáza majú automaticky predponu s názvom vášho účtu na hostiteľskom serveri:

Prejdeme na hlavnú stránku nášho webu, dostaneme nasledujúcu chybu vBulletin:

Vchádzame do cesty k inštalačnému programu v paneli s adresou, musíte pridať „install / install.php“, po ktorom sa spustí inštalačný program fóra vBulletin:

Inštalačný program vBulletin skontroluje súbory:

Ďalším krokom je kontrola pripojenia k databáze, neprejde - pretože Nesprávne údaje zadané v konfiguračnom súbore fóra:

Vrátime sa do ovládacieho panela hostingu, správcu súborov, prejdeme do adresára fóra, potom do podadresára „includes“. Otvorte súbor "config.php":

Do konfiguračného súboru zadáme správne údaje z databázy, potom ho zatvoríme:

Vraciame sa na stránku, k inštalatérovi. stlačte "F5", tentoraz je všetko v poriadku, spojenie so základňou sa zväčšilo:

Inštalačný program vBulletin vytvára tabuľky v databáze:

Inštalátor vBulletin mení typy niektorých tabuliek:

Zadávanie údajov do databázy:

Importované jazyky:

Importujú sa štýly:

Pomoc je importovaná:

Nedotýkame sa predvolených nastavení, inštalátor vBulletin správne určil všetko:

Importujú sa predvolené nastavenia:

Zadajte podrobnosti správcu vBulletin:

Správca vBulletin úspešne pridal:

Inštalácia vBulletin na hosting bola úspešne dokončená:

Podľa poslednej rady inštalačného programu odstráňte nepotrebné súbory:

Môžete prejsť na fórum vBulletin, aby ste sa uistili, že všetko funguje správne: