Külmavereline vbülletään. Milline foorum on parem vBulletin või PunBB

Olete kindlasti näinud vBulletini mootori foorumeid rohkem kui korra. Foorumid kui sellised ei ole enam moe tipul, kuid vBulletin on endiselt üks populaarsemaid mootoreid. Selle viimases (viies) versioonis leiti mitmeid turvaauke, mis võivad administraatori elu kõvasti rikkuda. Selles artiklis näitan teile, kuidas need töötavad.

Esimene probleem on kasutajaandmete vale filtreerimine. Sellest teatas sõltumatu julgeolekuteadlane, kes soovis jääda anonüümseks. Kuigi haavatavus on teatud piirangutega, on see saanud kriitilise oleku, kuna see võimaldab sihtsüsteemis lugeda mis tahes faile ja käivitada suvalist koodi.

Teise haavatavuse leidsid ettevõtte TRUEL IT teadlased ja see sai identifikaatori CVE-2017-17672. See on seotud andmete deserialiseerimise iseärasustega mootoris ja seda saab ründaja kasutada suvaliste failide kustutamiseks süsteemis.

Mõlemat probleemi üksikasjalikult kirjeldavad täielikud aruanded on avaldatud SecuriTeami programmi Beyond Security osana. Haavatavuste demonstreerimiseks on olemas ka PoC ärakasutamine. Käime selle kõik järjekorras läbi.

ettevalmistused

Serverina kasutasin WAMP distributsiooni.

Failide lugemine, käskude täitmine

Seega on esimese haavatavuse põhjuseks vale loogika parameetri routesstring töötlemisel, mis võimaldab ründajal lisada kettale mis tahes faili, kasutades selles sisalduvat PHP-koodi ja seda käivitada.

Meie tee algab kõige olulisemast failist - index.php, kus toimub rakenduse põhiline lähtestamine.

/index.php
48: $app = vB5_Frontend_Application::init("config.php"); ... 60: $marsruutimine = $app->getRouter(); 61: $meetod = $marsruutimine->getAction(); 62: $mall = $marsruutimine->getTemplate(); 63: $klass = $marsruutimine->getControllerClass();

Vaatame vB5_Frontend_Application::init meetodit.

/includes/vb5/frontend/application.php
13: klass vB5_Frontend_Application laiendab vB5_ApplicationAbstract 14: ( 15: avalik staatiline funktsioon init($configFile) 16: ( 17: parent::init($configFile); 18: 19: ise::$instance = new vB5_Application(Frontend2); ise::$instance->ruuter = new vB5_Frontend_Routing();21: self::$instance->router->setRoutes();

Siin oleme huvitatud meetodist setRoutes.

47: avalik funktsioon setRoutes() 48: ( 49: $this->processQueryString(); ... 54: if (isset($_GET["ruutesting"])) 55: ( 56: $tee = $_GET[" marsruudistring"];

Muutuja $path saab kasutajaandmete väärtuse marsruudistringi parameetrist. Saate sellesse suunata tee foorumi lehele ja see laaditakse.



Oletame, et läbisime /testi .

Pärast muutuja määramist järgneb kooditükk, mis eemaldab rea alguses oleva kaldkriipsu, kui see on olemas.

/includes/vb5/frontend/routing.php
75: if (strlen($tee) JA $tee(0) == "/") 76: ( 77: $tee = substr($tee, 1); // $tee = "test" 78: )
sisaldab\vb5\frontend\routing.php
83: if (strlen($tee) > 2) 84: ( 85: $ext = strtolower(substr($tee, -4)) ; 86: if (($ext == ".gif") VÕI ($ext == ".png") VÕI ($ext == ".jpg") VÕI ($ext == ".css") 87: VÕI (strtolower(substr($path, -3)) == ".js" )) 88: ( 89: header("HTTP/1.0 404 ei leitud"); 90: die(""); 91: ) 92: )

Nagu näete, on tšekk üsna kummaline. Vähemalt tekitab segadust otse koodi sisse õmmeldud keelatud laiendite nimekirja olemasolu. Ja üldiselt on juba see, et laiendus saadakse rea lõpust (rida 85) nelja tähemärgi lõikamisega, hämmingut. Üldiselt, kui proovime hankida gif-, png-, jsp-, css- või js-faili, tagastab server 404 lehe ja skript lakkab töötamast. Kui kõik kontrollid on läbitud, kutsutakse callApi abil välja meetod getRoute klassist vB_Api_Route. See otsib sobivaid marsruute kasutaja esitatud teabe põhjal.

Jätkuvalt saadaval ainult liikmetele

Võimalus 1. Liituge saidi kogukonnaga, et lugeda kõiki saidil olevaid materjale

Kommuuni kuulumine määratud perioodi jooksul annab teile juurdepääsu KÕIGILE häkkerite materjalidele, suurendab teie isiklikku kumulatiivset allahindlust ja võimaldab teil koguda professionaalset Xakep Score'i reitingut!

Ainult informatiivsel eesmärgil. Administratsioon ei vastuta selle sisu eest. Tasuta allalaadimine .


vBulletin Connect v5.3.3 on teie saidi jaoks võimas, skaleeritav ja täielikult kohandatav foorumipakett.

Versioon: 5.3.3 (vBSupport.org tühistatud)

Miinimumnõuded php 5.6
Ühilduvus php 7.1-ga
Värskel installimisel peate faili htaccess.txt ümber nimetama htaccessiks
Värskendamisel kustutage fontide kaust (enne värskendamise alustamist).

Uued võimalused:
Uus kasutajaliides koos ulatusliku sotsiaalse integratsiooniga;
Optimeeritud mobiilseadmete jaoks;
Lihtsustatud paigaldamine, haldamine ja konfigureerimine;
Uus andmebaasi arhitektuur parema otsingu ja parema jõudluse jaoks;
Mugav dünaamiline sisu muutmine;
Laiendatud videote ja piltide jagamiseks;
Täielik integratsioon VigLinkiga;
Rohkem kui 100 muud uut funktsiooni ja täiustust;

Manustatud rakendused:
Arutelufoorum
Rühmad
Küsitlused
Blogi

Otsingumootori optimeerimine:
SEO-sõbralikud URL-id
Kohandatud märksõna/kirjelduse META silt

Paindlikkus:
Laiendatavad kasutajaprofiilid
URL-i ümberkirjutamine
Liidese lokaliseerimine
metaandmed

Vastavusstandardid:
Sisu sündikaadi (RSS)
Sisu sündikatsioon: RSS, Atom, XML
Ühildub PHP v5.4-ga

Mittepurunev integreeritud süsteem:
Kaasatud ühekordne sisselogimine
Ainus lubade süsteem
Ainus administraatori juhtpaneel
Looge pidev stiil/teema artiklite, ajaveebi, foorumi kaudu

Juhtpaneelid iga rolli jaoks:
Halduskontrollid
Moderaatori juhtpaneel
Kasutaja juhtpaneel
Ühine lubade süsteem
Võimsusmalli mootor täpsemaks kohandamiseks

Kasutaja kontroll:
Mitme kasutajaga süsteem piiramatute rollide ja volitustega
Kaasatud rühmad
Turvalisus
Granuleeritud jõud
Probleemist teatamine
Ühilduv SSL
Captcha
E-posti kinnitus
Administraatori juhtpaneeli uudiste redaktor
Logi sisse "streigi" süsteemi
E-posti ja parooli muutmiseks on vaja praegust parooli
Ühildub 1998. aasta laste veebiprivaatsuse kaitse seadusega (COPPA).

1. Minge administraatori juhtpaneelile:
Keeled ja fraasid – keeled allalaadimine/üleslaadimine.
2. Sisestage väljale "KAS Laadige XML-fail arvutist üles" asukoht
vbulletin-language_ru.xml faili oma arvutis.
3. Valige suvandis "Keel ülekirjutamine" käsk "Loo uus keel".
4. Sisestage väljale "Üleslaaditud keele pealkiri" keele nimi.
Sisestatud andmete puudumisel nimetatakse seda keelt "vene (RU)"
5. Määrake "Jah" väärtuseks "Ignoreeri keeleversiooni"
6. Määrake "Jah" väärtuseks "Loe tähestiku XML-failist"
7. Klõpsake nuppu "Impordi" ja oodake, kuni allalaadimisprotsess on lõppenud.
7A Soovi korral saate uue keele muuta vaikekeeleks,
klõpsates selle kõrval olevat nuppu "Vaikimisi".





  • Alates:
  • Registreeritud: 2014.07.07
  • Postitused: 3,825
  • Mulle lihtsalt meeldib PunBB:
  • 5 aastat, 8 kuud, 20 päevad,
  • Meeldib: 480

Teema: Kumb foorum on parem vBulletin või PunBB

VBulletin (Vobla või Bulka, nagu meile meeldib seda nimetada) on üks vanimaid kommertsfoorumimootoreid, mis on kirjutatud PHP ja MySQL tehnoloogiate abil. Alates esimese versiooni ilmumisest 2000. aastal on funktsionaalsuse täiustamiseks tehtud tohutut tööd, mis võimaldas VB-l pääseda parimate tarkvaratoodete nimekirja.

VBulletini litsents maksab teile umbes 250 dollarit. Ärge kõhelge, see on täiesti õigustatud raiskamine ja tasub end tööaja ja närvirakkude säästmise kaudu kindlasti ära. Suurem osa sellest rahast läheb arendajatele ja programmeerijatele, kes kasutavad seda hiljem funktsionaalsuse viimistlemiseks ning paikade ja lisandmoodulite väljalaskmiseks (jah, kõik uuendused tuuakse teieni aasta jooksul tasuta).

2 Vastab PunBB

  • Alates: Moskva, Sovhoznay 3, apt. 98
  • Registreeritud: 2014.07.07
  • Postitused: 3,825
  • Mulle lihtsalt meeldib PunBB:
  • 5 aastat, 8 kuud, 20 päevad,
  • Meeldib: 480

Pole mõtet loetleda kõiki VBulletini funktsioone. Nad rakendasid peaaegu kõike, mida foorumi administraatorid vajada võisid. Podcasting, multitsiteerimise tugi, jagunemine sotsiaalseteks rühmadeks ja kogukondadeks, reitingusüsteem (reputatsioon). Põhipaketti saab täiendada kolmanda osapoole laiendustega.

VBulletini foorumimootor tekitab serverile tõsise koormuse, eriti kui installitud on kolmanda osapoole lisandmoodulid ja skriptid. Selleks, et tulevikus lehtede laadimisega probleeme vältida, peate tavalise hostimise jaoks välja pakkuma. Eriti kui ennustate oma ressursile tulevikus palju liiklust.

3 Vastab PunBB

  • Alates: Moskva, Sovhoznay 3, apt. 98
  • Registreeritud: 2014.07.07
  • Postitused: 3,825
  • Mulle lihtsalt meeldib PunBB:
  • 5 aastat, 8 kuud, 20 päevad,
  • Meeldib: 480

Re: Kumb foorum on parem vBulletin või PunBB

Tänu oma äärmisele vastupanuvõimele häkkimise ja rämpsposti robotitele on VBulletin soovitatav kasutada suurtes tõsistes projektides. Lisaks saab vaikesätteid ja konfiguratsioonifaile lihtsalt oma maitse järgi muuta, saavutades veelgi suurema efekti. Internetis on palju käsitööliste juhiseid ja juhendeid, kuigi kõiki neid ei tohiks usaldada.

VBulletin, teostab suuremahulisi ideid parimal võimalikul viisil. Pidevad uuendused, kvaliteetne teenindus, täiendavad laiendused ja usaldusväärsed turvamehhanismid – kõik see õigustab tootele kulutatud raha täielikult.

4 Vastab PunBB

  • Alates: Moskva, Sovhoznay 3, apt. 98
  • Registreeritud: 2014.07.07
  • Postitused: 3,825
  • Mulle lihtsalt meeldib PunBB:
  • 5 aastat, 8 kuud, 20 päevad,
  • Meeldib: 480

Re: Kumb foorum on parem vBulletin või PunBB

Kõiki funktsioone pole mõtet loetleda - see (või täiendustes) rakendab peaaegu kõike, mida administraator võib foorumi loomiseks vajada. Samuti on olemas multitsiteerimine ja taskuhäälingusaadete, kasutajate kogukondade ja sotsiaalsete rühmade tugi ning paindlik mainesüsteem ja palju muud.

Muidugi on vBulletinil palju lisandmooduleid ja kasutajakogukondi, nii et hooldusprobleeme ei teki, eriti kuna seal on ametlik tugiteenus. VBulletini miinuseks, kuigi mitte väga suureks, on tasulised lisandmoodulid näiteks kasutajate blogide jaoks.

Üldiselt pole foorumil puudusi. Seda saab soovitada suurte tõsiste projektide jaoks just tänu oma töökindlusele ja vastupidavusele igasugustele rünnakutele. Selle tulemusena tekitab see serverile märkimisväärse koormuse, eriti kui lisandmoodulid on installitud, kuid tõsiste projektide puhul kasutatakse tavaliselt tõsiseid servereid ja tõsiseid administraatoreid.

Iga mootor nõuab teatud toiminguid selle optimeerimiseks parema ja kiirema jõudluse saavutamiseks. Meie puhul räägime Vbulletin 4 optimeerimisest.

Kuna meie foorumi mootorit uuendatakse pidevalt, siis Vbulletini varasemate versioonide optimeerimisest ma ei kirjuta, vaid alustan versioonist 4.1.12. Kuigi see on võimalik, täiendan seda artiklit järk-järgult eelmiste versioonide optimeerimisega, kuna mitte kõik ei lähe üle uuematele.

Toon siinkohal mõned näited, et teie Vbulletini foorum oleks kiirem ja parem (alustades kõige lihtsamatest asjadest, liikudes edasi keerulisemate juurde). Pidage meeles, et asjad, mis minu jaoks sobivad, ei pruugi teie jaoks töötada. Seetõttu teete kõik muudatused omal vastutusel ja riskil.

Keela kasutajate loend.

On lihtne viis, lihtsalt keelake see funktsioon AdminCP-s. (Seaded -> Valikud -> Kasutajaloendi valikud)

See pole muidugi ülemaailmne ja võite selle vahele jätta ja mitte teha, lihtsalt küsige endalt, kas teil on seda vaja? Alates loendist saavad kasutajad seda sortida, vaadata, kellel on rohkem sõnumeid, mainet jne. Kas teie kasutajad kasutavad seda? Tõenäoliselt mitte… millal sa viimati seda nimekirja kasutasid?

Mulle tundub, et need loendid on mõeldud ainult rämpsposti saatjatele, kuna nii on kõige lihtsam koguda Vbulletin 4 foorumi liikmete nimed privaatsõnumites rämpsposti saatmiseks.

Lisaks on kasutajate loendi koostamiseks vajalik päring andmebaasiserverite jaoks kohutav ja võib põhjustada serveri suure koormuse.

Suurenenud kiirus privaatsõnumite loendi töötlemisel.

Kui te pole kunagi Impexi või muude vahenditega privaatsõnumeid välistest allikatest importinud, võite privaatsõnumite puhul julgelt ID-põhise sorteerimisele loota. ID järgi sorteerimine tagab, et teie andmebaasiserver ei pea sortimiseks privaatsõnumeid ajutisesse tabelisse lisama (mis muudab päringu palju kiiremaks).

Selleks peate kirjutama privaatsõnumite loendi filtrisse väikese mooduli asukohaga ja kirjutama sellesse järgmist:

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

Ja kõik, sa tegid just private.php ~20% kiiremaks.


Seadistame kasutaja viimaste sõnumite tõhusama otsingu.

Me läheme ftp-sse, otsime faili include / class_userprofile.php ja asendame selles olevad andmed järgmiselt, otsige:

$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 . "lõime AS lõime USING (threadid) WHERE thread.visible = 1 AND post.userid = " . $this->userinfo["kasutajatunnus"] . " AND post.visible = 1 ORDER BY post.dateline DESC LIMIT 20");

ja asendage see järgmisega (täpsemalt TELLIDA):

$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 . "lõime AS lõime USING (threadid) WHERE thread.visible = 1 JA post.userid = " . $this->userinfo["kasutajatunnus"] . " AND post.visible = 1 ORDER BY post.postid DESC LIMIT 20");

See muudab päringu praegusest pisut õigemaks. Seega ei pea te sorteerima ajutisse tabelisse. Kasutajatel, kellel on üle 1000 sõnumi, võtaks esialgne päring aega umbes 10 sekundit, meie puhul palju vähem. See kehtib peamiselt Vbulletin 4 kasutajaprofiili kohta, et kuvada uusimad postitused.

Teemaregistri kontroll.

Kui teie foorumitel on vaikimisi sortimise järjekord ja need on seatud nii, nagu me tegime ülal, veenduge, et kõik teie indeksid oleksid nende tabelites. oli juhtumeid, kus indeksid mulle teadmata põhjustel ristusid ja osa foorumeid ei avanenud.

Minu soovitus on muuta see nii, et vaikimisi sortimine oleks kuupäev (veeru, mis neid andmeid kasutab, nimetatakse "kuupäevaks") ja selle rakendamiseks täidame päringu:

ALTER TABLE lõime ADD INDEX forumid2_dp (foorum, nähtav, kleepuv, kuupäevajoon)

See taotlus kehtib konkreetselt minu kohta, teie puhul peaks forumid2_dp olema teie nimi. Kasutage omal riisikol.

Olge lisandmoodulite installimisel ettevaatlik.

See, et keegi teeb mooduleid ja häkkimisi, ei tähenda, et need on loodud just teie jaoks, on töötanud suurte Vbulletin 4 foorumitega ja on vigadeta. Suurepärane näide on teated massilistest häkkidest selle või teise häkkimise kaudu.

Muidugi võib eeldada, et arendajad ei saa kõigega arvestada ja kühveldada kõiki häkke, et need konflikti ei läheks, aga... Veenduge, et Vbulletini moodul ei põhjustaks suuri andmebaasikoormusi, veenduge, et häkkimisel oleks potentsiaal kaitsta SQL-i süstimise või XSS-i eest. Kahjuks on rakendusi ja modifikatsioone tuhandeid ning kõike kontrollida pole lihtsalt reaalne. Parem oleks, kui kirjutaksite kõik häkid ise või telliksite kelleltki. Täpsemalt teie ja teie ülesannete jaoks.

Ärge kasutage InnoDB-s tabeleid.

Siin võivad nad mulle muidugi näkku sülitada, kuna seda teemat on juba miljon korda arutatud, aga omast kogemusest võin öelda, et töötan iga tegevuse jaoks 100% MyISAMi tabelite peal. Mõnikord töötlen 1000 päringut sekundis.

Kui hakkate päringute tegemisel juba ehmatama, kus kõik ripub, eriti uues Vbulletini otsingus, muutke MyISAMis InnoDB tabeleid. MyISAM vastab üksikutele päringutele kiiremini, kuna puudub vajadus hallata üksikute kirjete lukustamist. InnoDB on üldiselt kiirem, kuid ainult seetõttu, et see võimaldab päringuid samaaegselt käivitada. kui teie päringud töötavad juba MyISAMi all kiiresti, pole vaja InnoDB-le lülituda. MINU ARVATES.

Artikli hinnang

0%

Hinnang

kasutaja hinnang: 0,35 (1 häält)

Peamised eelised:

  • Kiire ja tõhus andmebaasipõhine
  • Malli liides
  • Võimas otsingumootor
  • Mitme keele tugi
  • Kasutajaprofiilid
  • Võimas ja kasutajasõbralik administraatoripaneel
  • Piiramatu arv jaotisi/teemasid/sõnumeid
  • Meiliteatised
  • COPPA tugi

Kuna tootja ei paku installitavat foorumi demot, siis pidin installima mingist warezist alla laaditud vasakpoolse versiooni. Seega ei pruugi juhised täpselt ühtida litsentsitud foorumi installimise protsessiga. Pärast paigaldamist sait eemaldati ja seda ei kasutatud sihtotstarbeliselt.

vBulletini installimiseks minge hostimise juhtpaneelile (arvelduses hostimistellimuse kõrval olev hammasrattaga nupp), minge "Failihaldurisse", minge kataloogi "www". Klõpsake nuppu "Laadi fail praegusesse kataloogi üles":

Määrake oma arvutis oleva faili tee:

Valige vBulletiniga arhiiv, pakkige see lahti:

Kustutame failid ja kataloogid, mida me ei vaja, sealhulgas meie www-domeeni kataloogi – eeldusel, et teil pole seal midagi, mida vajate. Kui te ei pane seda saidi juure või saidi kataloogis on midagi vajalikku, ei pea te domeeni www kataloogi kustutama:

Valige vBulletini installijaga kataloog ja nimetage see ümber:

Sisestage kataloogi nimeks meie saidi nimi:

Avage hostimise juhtpaneeli jaotis "Andmebaasid":

Looge uus MySQL-i andmebaas ja kasutaja, kellel on sellele täielikud juurdepääsuõigused:

Pange tähele, et nii kasutajale kui ka andmebaasile lisatakse hostiserveris automaatselt teie konto nimi:

Läheme oma saidi avalehele, saame järgmise vBulletini vea:

Me sõidame aadressiriba installija juurde, peate lisama "install / install.php", mille järel käivitatakse vBulletini foorumi installiprogramm:

vBulletini installiprogramm kontrollib faile:

Järgmine samm on andmebaasiga ühenduse kontrollimine, see ei lähe läbi - kuna Foorumi konfiguratsioonifaili sisestatud valed andmed:

Naaseme hostimise juhtpaneeli, failihalduri juurde, läheme foorumi kataloogi, seejärel alamkataloogi "includes". Avage fail "config.php":

Sisestame andmebaasist õiged andmed konfiguratsioonifaili, mille järel sulgeme selle:

Naaseme saidile, paigaldaja juurde. vajutage "F5", seekord on kõik korras, ühendus alusega on kokku kasvanud:

vBulletini installer loob andmebaasis tabelid:

vBulletini installer muudab mõne tabeli tüüpe:

Andmete sisestamine andmebaasi:

Imporditud keeled:

Stiilid imporditakse:

Abi imporditakse:

Me ei puuduta vaikesätteid, vBulletini installija määras kõik õigesti:

Vaikesätted imporditakse:

Sisestage vBulletini administraatori andmed:

vBulletini administraatori lisamine õnnestus:

vBulletini installimine hostimisse on edukalt lõpule viidud:

Järgides installija viimast nõuannet, kustutage mittevajalikud failid:

Võite minna vBulletini foorumisse ja veenduda, et kõik töötab õigesti: