Promatranja vBulletin-a ili pokušaji predmemoriranja dinamičkog sadržaja. Promatranja vBulletin-a ili pokušaji predmemoriranja dinamičkog sadržaja Besprijekoran vBulletin

  • 20.03.2024

Vjerojatno ste mnogo puta vidjeli forume na vBulletin motoru. Forumi kao takvi više nisu u modi, ali vBulletin je i dalje jedan od najpopularnijih motora. U posljednjoj (petoj) verziji pronađeno je nekoliko ranjivosti koje mogu uvelike uništiti život administratora. U ovom članku ću vam reći kako se koriste.

Prvi problem je netočno filtriranje korisničkih podataka. Izvijestio je to neovisni sigurnosni istraživač koji je želio ostati anoniman. Ranjivost, iako ima neka ograničenja, dobila je status kritične jer vam omogućuje čitanje bilo koje datoteke i izvršavanje proizvoljnog koda na ciljnom sustavu.

Drugu ranjivost pronašli su istraživači iz TRUEL IT-a i dobila je identifikator CVE-2017-17672. Povezan je sa značajkama deserijalizacije podataka u motoru i napadač ga može koristiti za brisanje proizvoljnih datoteka na sustavu.

Potpuna izvješća koja detaljno opisuju oba problema objavljena su u sklopu SecuriTeamovog programa Beyond Security. Postoje i PoC eksploatacije za demonstraciju ranjivosti. Prođimo kroz sve ovo redom.

Pripreme

Koristio sam WAMP distribuciju kao poslužitelj.

Čitajte datoteke, izvršavajte naredbe

Dakle, razlog prve ranjivosti je netočna logika prilikom obrade parametra routestring, koja napadaču omogućuje uključivanje bilo koje datoteke na disku putem uključivanja i izvršavanje PHP koda koji se nalazi u njoj.

Naš put počinje najvažnijom datotekom - index.php, gdje se odvija osnovna inicijalizacija aplikacije.

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

Pogledajmo vB5_Frontend_Application::init metodu.

/includes/vb5/frontend/application.php
13: klasa vB5_Frontend_Application proširuje vB5_ApplicationAbstract 14: ( 15: javna statička funkcija 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();

Ovdje nas zanima metoda setRoutes.

47: javna funkcija setRoutes() 48: ( 49: $this->processQueryString(); ... 54: if (isset($_GET["routestring"])) 55: ( 56: $path = $_GET[" niz usmjeravanja"];

Varijabla $path sadrži vrijednost korisničkih podataka iz parametra routestring. Možete mu proslijediti put do stranice foruma i on će se učitati.



Recimo da smo položili /test .

Nakon dodjele varijable, postoji dio koda koji se rješava kose crte na početku retka, ako postoji.

/includes/vb5/frontend/routing.php
75: if (strlen($path) I $path(0) == "/") 76: ( 77: $path = substr($path, 1); // $path = "test" 78: )
uključuje\vb5\frontend\routing.php
83: if (strlen($path) > 2) 84: ( 85: $ext = strtolower(substr($path, -4)) ; 86: if (($ext == ".gif") ILI ($ext == ".png") ILI ($ext == ".jpg") ILI ($ext == ".css") 87: ILI (strtolower(substr($path, -3)) == ".js" )) 88: ( 89: zaglavlje("HTTP/1.0 404 nije pronađeno"); 90: umri(""); 91: ) 92: )

Kao što vidite, ček je prilično čudan. U najmanju ruku, prisutnost popisa zabranjenih ekstenzija upisanih izravno u kod je zbunjujuća. I općenito, sama činjenica da se proširenje dobiva rezanjem četiri znaka s kraja retka (redak 85) zbunjuje. Općenito, ako pokušamo primiti datoteku s ekstenzijama gif, png, jsp, css ili js, poslužitelj će vratiti stranicu 404 i skripta će se prestati izvršavati. Kada prođu sve provjere, poziva se metoda getRoute iz klase vB_Api_Route koristeći callApi. Traži prikladne rute na temelju podataka koje daje korisnik.

Nastavak je dostupan samo članovima

Opcija 1. Pridružite se zajednici "site" kako biste pročitali sve materijale na stranici

Članstvo u zajednici unutar navedenog razdoblja omogućit će vam pristup SVIM hakerskim materijalima, povećati vaš osobni kumulativni popust i omogućiti vam da skupite profesionalnu ocjenu Xakep Score!

Dugo sam htjela pisati o ovome, ali nikako nisam stigla, ali eto eto, eto, eto, eto prilike da objavim kratku zabilješku na tu temu. Pa zašto ne objaviti popis onoga što bi korisnik trebao prvo pogledati prije nego što odabere uslugu hostinga. Posebno za nas, one koji koriste vbulletin. Nazovimo sve to jednostavno – preporuke. Jasno je da profesionalci već sve razumiju; tu se nema što objašnjavati. Ali početnici bi ipak trebali miješati. Budući da vidim nezdrav trend, administrator Vbulletina 4 želi da njegov forum radi na dijeljenom hostingu za 5 dolara i sve će proći. ovo se više nikada neće dogoditi!

Svi znamo osnove, ali kad sam tražio svog domaćina, napravio sam i neke pogreške, pa pogledajmo neke.

Je li tvrtka nadprodavač?

Gospodo, molim vas, nemojte koristiti hosting koji se preprodaje (overseller). Najvjerojatnije ćete dobiti komad velikog "gumna" s kojim ćete dugo patiti. Ali kako možemo utvrditi da se hosting preprodaje kroz 50 ruku? Tu nema tajni, ponudit će vam se 500 ili 1500 GB prostora (tu naravno pretjerujem, ali ne puno) i 100 TB bandwitha, a za samo 5 dolara. Nije li predobro? Ali ovo je sve sranje; ne treba vam više od 2-10 GB prostora na disku, vjerujte mi. A propusnost od 50-200 GB je izvan vaših ušiju, pogotovo u prvih par dana.

Je li tvrtka preprodavač?

Ovdje također morate biti vrlo oprezni. Većina preprodavača su tvrtke koje lete po noći. Uzmu novac, malo rade i to je to, nećete ih više vidjeti. Sve vaše datoteke i rad bit će izgubljeni! Ali ovo nam ne treba, zar ne? Čak i ako vam se sviđaju cijene hostinga ovih tvrtki, svakako provjerite koliko dugo pojedina tvrtka postoji.

Ograničenje veličine baze podataka!

Ovo je vrlo važna točka ako planirate migrirati svoj radni vbulletin. Gledao sam ponude raznih hostera, većina nudi 100MB. U početku će vam to, naravno, biti dovoljno, ali čim vaš forum poraste, to vam neće biti dovoljno i bit ćete prisiljeni prebaciti se na VPS ili namjenski poslužitelj.

Broj istodobnih veza s bazom podataka.

Oh da, ovo je 100% važno. Ovo je vrlo važno, pogotovo ako radite s Vbulletinom. Jer s vremenom, simultane veze samo rastu. Većina tvrtki za dijeljeni hosting nudi 10-250, sve ovisi o hostingu. Jednostavno nazovite tehničku podršku i pitajte ih o tome. No, nemaju sve web-lokacije za dijeljeni hosting te informacije niti će ih podijeliti s vama.

Recenzije! Je li to dobro ili loše?

Tehnička podrška.

Većina hosting stranica ima 24-satnu tehničku podršku koja radi 24/7, putem e-pošte, ulaznica, icq-a, skype-a ili neke druge metode. Ali koliko dugo će vam oni pomagati? Ponekad to igra odlučujuću ulogu.

Nazovite tehničku podršku i pogledajte koliko dugo čekate na odgovor, posebno noću ili u 5-6 ujutro. I provjeri nekoliko opcija i telefon i karte. Postavljajte jednostavna pitanja na koja već znate odgovore, moramo izračunati njihovo vrijeme odgovora. Imam! Super, pogledaj koliko si čekao odgovor na lako pitanje, pa procijeni koliko će ti odgovoriti u teškoj situaciji.

Velika poznata tvrtka ili nova nepoznata?

U principu, ovdje je izbor samo pred vama; što je tvrtka starija i renomiranija, cijene neće biti nešto više od onih novoosnovanih. Osobno biram tvrtku koja se već nekako dokazala. Želite li znati zašto? Jednostavno je, samo zamislite da možete izgubiti mnoge korisne datoteke i bazu podataka preko noći. Isto vrijedi i za politiku privatnosti; ne možete uvijek biti sigurni da se ona poštuje. Vaši se podaci mogu kopirati i izraditi klonirane stranice. Ovaj popis ide u nedogled. Pa razumijes me :)

Glavne prednosti:

  • Brz i učinkovit okvir baze podataka
  • Sučelje koje se sastoji od predložaka
  • Snažna tražilica
  • Višejezična podrška
  • Korisnički profili
  • Snažan i praktičan administrativni panel
  • Neograničen broj odjeljaka/tema/poruka
  • Obavijesti putem e-maila
  • COPPA podrška

S obzirom na to da proizvođač ne daje demo foruma koji se može instalirati, morao sam instalirati lijevu verziju, skinutu s nekog Vareznika. Stoga upute možda neće u potpunosti odgovarati postupku instalacije foruma za licenciranje. Nakon instalacije, stranica je izbrisana i nije korištena za namjeravanu svrhu.

Da biste instalirali vBulletin, idite na upravljačku ploču hostinga (gumb sa zupčanikom pored reda hostinga u naplati), tamo u “File Manager”, u njemu idemo na “www” direktorij. Kliknite gumb "Učitaj datoteku u trenutni direktorij":

Navedite put do datoteke na vašem računalu:

Odaberite arhivu s vBulletin i raspakirajte je:

Brišemo datoteke i direktorije koji nam ne trebaju, uključujući direktorij naše www domene - pod uvjetom da tamo nemate ništa što vam treba. Ako ga ne stavite u korijen web stranice, ili postoji nešto što je potrebno u direktoriju web stranice, ne morate brisati direktorij www domene:

Odaberite direktorij s vBulletin instalacijskim programom i preimenujte ga:

Unesite naziv naše stranice kao ime direktorija:

Idite na odjeljak "Baze podataka" na upravljačkoj ploči hostinga:

Napravite novu MySQL bazu podataka i korisnika s punim pravima pristupa njoj:

Imajte na umu da su i korisnik i baza podataka automatski dobili prefiks na temelju naziva vašeg računa na hosting poslužitelju:

Idemo na glavnu stranicu naše stranice i dobivamo sljedeću vBulletin pogrešku:

U adresnu traku unesemo put do instalatera, dodamo “install/install.php”, nakon čega se pokreće instalacijski program vBulletin foruma:

Instalacijski program vBulletin provjerava prisutnost sljedećih datoteka:

Sljedeći korak je provjeriti vezu s bazom podataka, ne radi - jer... Konfiguracijska datoteka foruma sadrži netočne podatke:

Vraćamo se na upravljačku ploču hostinga, upravitelj datoteka, idemo u direktorij s forumom, zatim poddirektorij "uključuje". Otvorite datoteku "config.php":

U konfiguracijsku datoteku unosimo točne podatke iz baze, nakon čega je zatvaramo:

Vraćamo se na mjesto, instalateru. pritisnite “F5”, ovaj put je sve u redu, veza s bazom podataka je srasla zajedno:

Instalacijski program vBulletin stvara tablice u bazi podataka:

Instalacijski program vBulletin mijenja tipove nekih tablica:

Podaci se unose u bazu:

Uvezeni jezici:

Stilovi se uvoze:

Pomoć se uvozi:

Ne diramo zadane postavke; instalacijski program vBulletin je sve ispravno odredio:

Zadane postavke se uvoze:

Unesite podatke administratora vBulletin:

Administrator vBulletin je uspješno dodan:

Instalacija vBulletin-a na hosting je uspješno završena:

Slijedeći posljednji savjet instalatera, izbrišite nepotrebne datoteke:

Možete otići na vBulletin forum da provjerite radi li sve ispravno:

VBulletin nudi sve što administrator foruma može zatrebati. Podcasting, podrška za višestruko citiranje, podjela na zajednice i grupe, reputacija korisnika - sve je to dostupno u osnovnoj konfiguraciji, koja se može proširiti instaliranjem ekstenzija trećih strana.

Motor stvara veliko opterećenje na poslužitelju, posebno nakon instaliranja dodataka i skripti trećih strana. Stoga ćete za normalan rad morati kupiti normalan hosting - zaboravite na besplatne ponude i junior planove za novčiće, koji čak usporavaju web stranicu posjetnice. Što je veći promet, to je veće opterećenje poslužitelja, pa bandwith treba uzeti s rezervom. Po mogućnosti neograničeno.

Ne možete uštedjeti na hostingu jer je Vbulletin dizajniran za stvaranje velikih projekata. Motor je otporan na hakiranje i spam napade, tako da se posjetitelji mogu osjećati sigurnima. Moderator će biti potreban, ali ne da čisti niti reklamnih postova, već da upravlja raspravama.

Za osnovnu prilagodbu izgleda, dodavanje i uređivanje stranica možete koristiti ugrađeni dizajner. Da biste ga posjetili, morate se prijaviti na web mjesto pomoću administratorskog računa. Postoji prekidač pored korisničkog imena koji bi trebao biti postavljen na Uključeno. Nakon ponovnog unosa lozinke, stranica će se otvoriti u modu dizajna.

U dizajneru možete dodati stranicu, premjestiti elemente na nju, a zatim dodati vezu na stranicu u glavni izbornik web mjesta. Sve se to radi jednostavno kao u vizualnom dizajneru. Ali globalna prilagodba sučelja zahtijevat će vještine programiranja, koje se mogu primijeniti na administrativnoj ploči.

Za korisnike koji ne žele komunicirati s poslužiteljskom infrastrukturom, programeri nude vBulletin Cloud rješenje. Uz njegovu pomoć možete dobiti potpuno funkcionalan forum sa svim administrativnim funkcijama, zaobilazeći faze preuzimanja, instaliranja i konfiguriranja motora. U suštini, nakon kupnje plana, sve što trebate učiniti je prilagoditi web mjesto kako bi odgovaralo vašim potrebama prije nego što na njega pokrenete posjetitelje.

Oblikovati

Na službenoj web stranici motora možete preuzeti teme za osnovni dizajn. Jednostavno se instaliraju na stranicu i mogu se mijenjati prema željama webmastera. Za upravljanje stilovima, na administrativnoj ploči postoji odjeljak Oglašavanje. U njemu možete:

  • Promijenite ili dodajte pozadinu stranice.
  • Dodajte sliku umjesto pozadine.
  • Uredi datoteku stila.

Osnovne promjene mogu se napraviti kroz konstruktor. Na primjer, za promjenu logotipa morate otvoriti karticu Zaglavlje i prenijeti odgovarajuću datoteku. Na kartici Navigacijska traka možete upravljati glavnim izbornikom stranice: dodavati i uklanjati veze na druge stranice, mijenjati njihov redoslijed, dodjeljivati ​​imena.

Ovo ne zahtijeva vještine programiranja, odnosno, čak i webmaster početnik koji nikada prije nije radio s forumskim motorima može izvršiti osnovne postavke izgleda.

Optimizacija za tražilice (SEO)

CMS vBulletin nema poseban modul za optimizaciju tražilica. No, to ne znači da nema potrebe za radom na forumu. Stranice podliježu zahtjevu da moraju imati H1 oznaku, koja se koristi za određivanje teme stranice za robota. Da biste postavili indeksiranje, trebate urediti datoteku robots.txt - savjete o tome kako je ispravno formatirati možete pronaći na forumima posvećenim stranicama na vBulletin.

Optimizacija za tražilice uvelike je povezana s omogućavanjem ili onemogućavanjem pojedinačnih funkcija. Na primjer, potrebno je onemogućiti skok izbornik za spremanje koda. Ima puno takvih sitnica, možete ih saznati samo na specijaliziranim forumima - u vBulletin pomoći nema ništa slično.

Dostupni su SEO dodaci za dodavanje novih značajki. Najpoznatiji je VBSEO. Uz njegovu pomoć možete optimizirati forum kako bi zadovoljio zahtjeve tražilica: postaviti preusmjeravanja, ukloniti duplikate i isključiti pojedinačne stranice iz indeksiranja. Glavni nedostatak je što VBSEO stvara dodatno opterećenje na poslužitelju, koje je ionako prilično veliko za CMS.

Cijene

Doživotna licenca s godišnjim ažuriranjem koštat će 250 USD. Za ovaj novac dostupne su sve karakteristike motora:

  • Ugrađene aplikacije: forum, grupe, ankete, blog.
  • Alati za optimizaciju tražilica.
  • Stručna podrška.
  • Fleksibilne postavke sučelja.
  • Kontrolne ploče za sve sudionike: administratora, moderatora, korisnika.
  • Alati za upravljanje korisnicima.

250$ nije konačna cijena. Za ovaj novac kupujete samo doživotno pravo korištenja motora.

  • Da biste nastavili primati ažuriranja, morate platiti 209 USD svake godine. Programeri također nude plaćene dodatke:
  • Uklanjanje marke podnožja s cijele vaše web-lokacije jednokratna je naknada od 169 USD.
  • Dodatna podrška putem telefona ili karte iznosi 49 USD mjesečno ili 329 USD godišnje.
  • Profesionalna instalacija ili nadogradnja motora - jednokratna naknada od 149 USD.

Ako želite da forum izgleda dobro na manjim ekranima, možete kupiti Mobile Pack. Licenca će koštati 399 dolara, a obnavljanje će koštati 359 dolara godišnje. Mobilna verzija košta 199 dolara zasebno. Bez njega se forum normalno može koristiti samo na računalu.

Prilikom odabira vBulletin Clouda dostupna su tri plana: Bronze, Silver i Gold. Svi oni nude:

  • Automatsko ažuriranje na najnoviju verziju sustava.
  • Korištenje poslužitelja optimiziranih za vBulletin.
  • Promijenite raspoloživi prostor na disku kako bi odgovarao vašim potrebama.
  • Automatsko stvaranje sigurnosnih kopija.

Minimalni plan košta 19,95 USD mjesečno (14,99 USD ako se plaća godišnje). Nudi propusnost od 25 GB, besplatnu podršku i besplatnu domenu. Ovo je izvrsno rješenje za male forume s malim prometom.

Silver sada košta 39,95 USD mjesečno (29,99 USD ako se plaća godišnje) i daje 75 GB propusnosti, kao i podršku putem sustava ulaznica. Ovaj je plan prikladan za rastuće zajednice sa srednjim prometom.

Najviši plan je Gold za 74,95 USD mjesečno (59,99 USD ako se naplaćuje godišnje). 200 GB propusnosti, besplatna telefonska podrška. Optimalno rješenje za velike forume.

Prednosti i nedostatci

VBulletin radi već jako dugo, tako da ima razvijenu korisničku zajednicu, detaljnu dokumentaciju i puno povezanih materijala: teme, predloške, proširenja. Među ostalim prednostima ističemo:

  • Velik broj dizajnerskih tema.
  • Mogućnost proširenja funkcionalnosti instaliranjem dodataka i modula, kojih već ima više od 1000.
  • Jednostavni alati za izradu sadržaja i upravljanje web stranicama.
  • Pojednostavljena prilagodba dizajna.
  • Brza objava fotografija i videa od strane korisnika.
  • Optimizirano za mobilne uređaje pri kupnji odgovarajućeg paketa.

Ako ste prethodno koristili neki drugi forumski mehanizam, trebat će vam dosta vremena da se naviknete na VBulletin administrativnu ploču. Nije loše - samo neobično iu nekim trenucima nezgodno.

VBulletin je oduvijek imao veliko opterećenje poslužitelja, posebno kada se instalira više ekstenzija. To se mora uzeti u obzir pri odabiru hostinga i uključiti u proračun kako biste kupili plan s većom snagom. Troškovi su vrlo visoki i definitivno nećete moći uštedjeti novac - to riskira činjenicu da će forum "pasti" kada dođe do priljeva posjetitelja.

Nakon promjene razvojnog tima postavljaju se brojna pitanja o sigurnosti motora. Najstabilnija verzija ostaje 3.8. Četvrta i peta verzija stalno dobivaju sigurnosna ažuriranja, koja pokazuju da programeri krpaju rupe nakon izdavanja proizvoda.