Aukstasinīgs vbulletins. Kurš forums ir labāks vBulletin vai PunBB

Jūs noteikti esat redzējis forumus vBulletin dzinējā vairāk nekā vienu reizi. Forumi kā tādi vairs nav modes virsotnē, taču vBulletin joprojām ir viens no populārākajiem dzinējiem. Tās jaunākajā (piektajā) versijā tika atrastas vairākas ievainojamības, kas var krietni sabojāt administratora dzīvi. Šajā rakstā es jums parādīšu, kā tie darbojas.

Pirmā problēma ir nepareiza lietotāja datu filtrēšana. Par to ziņoja neatkarīgs drošības pētnieks, kurš vēlējās palikt anonīms. Ievainojamība, lai arī tai ir daži ierobežojumi, ir saņēmusi kritiskas statusu, jo ļauj nolasīt jebkurus failus un izpildīt patvaļīgu kodu mērķa sistēmā.

Otro ievainojamību atklāja TRUEL IT pētnieki, un tā saņēma identifikatoru CVE-2017-17672. Tas ir saistīts ar datu deserializācijas funkcijām dzinējā, un uzbrucējs to var izmantot, lai dzēstu patvaļīgus failus sistēmā.

SecuriTeam programmas Beyond Security ietvaros ir publicēti pilni ziņojumi, kuros sīki aprakstīti abi jautājumi. Ir arī PoC ekspluatācijas, lai demonstrētu ievainojamības. Iziesim tam visam cauri secībā.

preparāti

Es izmantoju WAMP izplatīšanu kā serveri.

Failu lasīšana, komandu izpilde

Tātad pirmās ievainojamības iemesls ir nepareiza loģika, apstrādājot parametru routesstring, kas ļauj uzbrucējam pievienot diskā jebkuru failu, izmantojot iekļauto un tajā esošo PHP kodu.

Mūsu ceļš sākas ar pašu svarīgāko failu - index.php, kur notiek aplikācijas pamata inicializācija.

/index.php
48: $app = vB5_Frontend_Application::init("config.php"); ... 60: $maršrutēšana = $app->getRouter(); 61: $metode = $maršrutēšana->getAction(); 62: $veidne = $maršrutēšana->getTemplate(); 63: $klase = $maršrutēšana->getControllerClass();

Apskatīsim metodi vB5_Frontend_Application::init.

/includes/vb5/frontend/application.php
13: klase vB5_Frontend_Application paplašina vB5_ApplicationAbstract 14: ( 15: publiska statiskā funkcija init($configFile) 16: ( 17: parent::init($configFile); 18: 19: self::$instance = new vB5_Application(Frontend2); self::$instance->router = new vB5_Frontend_Routing(); 21: self::$instance->router->setRoutes();

Šeit mūs interesē setRoutes metode.

47: publiskā funkcija setRoutes() 48: ( 49: $this->processQueryString(); ... 54: if (isset($_GET["maršrutēšanas virkne"])) 55: ( 56: $path = $_GET[" maršruta virkne"];

Mainīgais $path iegūst userdata vērtību no maršruta virknes parametra. Tajā varat ievadīt ceļu uz foruma lapu, un tā tiks ielādēta.



Pieņemsim, ka esam nokārtojuši /test .

Pēc mainīgā piešķiršanas seko koda daļa, kas atbrīvo no slīpsvītras rindas sākumā, ja tāda ir.

/includes/vb5/frontend/routing.php
75: if (strlen($path) UN $path(0) == "/") 76: ( 77: $path = substr($path, 1); // $path = "test" 78: )
ietver\vb5\frontend\routing.php
83: if (strlen($path) > 2) 84: ( 85: $ext = strtolower(substr($path, -4)) ; 86: if (($ext == ".gif") VAI ($ext == ".png") VAI ($ext == ".jpg") VAI ($ext == ".css") 87: VAI (strtolower(substr($path, -3)) == ".js" )) 88: ( 89: galvene("HTTP/1.0 404 nav atrasts"); 90: die(""); 91: ) 92: )

Kā redzat, čeks ir diezgan dīvains. Vismaz mulsina tieši kodā iešūta aizliegto paplašinājumu saraksta klātbūtne. Un vispār mulsina pats fakts, ka paplašinājums tiek iegūts, nogriežot četras rakstzīmes no rindas beigām (85. rinda). Parasti, ja mēs mēģinām iegūt gif, png, jsp, css vai js failu, serveris atgriezīs 404 lapu un skripts pārtrauks darboties. Kad visas pārbaudes ir izturētas, metode getRoute no klases vB_Api_Route tiek izsaukta, izmantojot callApi . Tā meklē piemērotus maršrutus, pamatojoties uz lietotāja sniegto informāciju.

Turpinājums pieejams tikai dalībniekiem

1. iespēja. Pievienojieties "vietnes" kopienai, lai lasītu visus vietnes materiālus

Dalība kopienā norādītajā laika posmā nodrošinās piekļuvi VISIEM Hacker materiāliem, palielinās jūsu personīgo kumulatīvo atlaidi un ļaus jums uzkrāt profesionālu Xakep Score reitingu!

Tikai informatīviem nolūkiem. Administrācija nav atbildīga par tās saturu. Bezmaksas lejupielāde .


vBulletin Connect v5.3.3 ir jaudīga, mērogojama un pilnībā pielāgojama foruma pakotne jūsu vietnei.

Versija: 5.3.3 (nullē vBSupport.org)

Minimālās prasības php 5.6
Saderība ar php 7.1
Jaunā instalācijā fails htaccess.txt ir jāpārdēvē par .htaccess.
Atjauninot, izdzēsiet fontu mapi (pirms atjaunināšanas sākšanas).

Jaunas iespējas:
Jauna lietotāja saskarne ar plašu sociālo integrāciju;
Optimizēts mobilajām ierīcēm;
Vienkāršota uzstādīšana, vadība un konfigurēšana;
Jauna datu bāzes arhitektūra uzlabotai meklēšanai un labākai veiktspējai;
Ērta dinamiska satura maiņa;
Paplašināts video un attēlu koplietošanai;
Pilnīga integrācija ar VigLink;
Vairāk nekā 100 citu jaunu funkciju un uzlabojumu;

Iegultās lietojumprogrammas:
Diskusiju forums
Grupas
Aptaujas
Emuārs

Meklētājprogrammu optimizācija:
SEO draudzīgi URL
Pielāgots atslēgvārda/apraksta META tags

Elastība:
Paplašināmi lietotāju profili
URL pārrakstīšana
Interfeisa lokalizācija
metadati

Atbilstības standarti:
Sindikāta saturs (RSS)
Satura sindikācija: RSS, Atom, XML
Saderīgs ar PHP v5.4

Neplīstoša integrēta sistēma:
Iekļauta viena pieteikšanās
Vienīgā atļauju sistēma
Vienīgais administratora vadības panelis
Izveidojiet nepārtrauktu stilu/motīvu, izmantojot rakstus, emuārus, forumu

Vadības paneļi katrai lomai:
Administratīvā kontrole
Moderatora vadības panelis
Lietotāja vadības panelis
Kopīga atļauju sistēma
Jaudas veidņu dzinējs uzlabotai pielāgošanai

Lietotāja kontrole:
Vairāku lietotāju sistēma ar neierobežotām lomām un pilnvarām
Iesaistītās grupas
Drošība
Granulētie spēki
Paziņojums par problēmu
Saderīgs SSL
Captcha
E-pasta pārbaude
Administratora vadības paneļa ziņu redaktors
Pieteikties "streika" sistēmā
E-pasta un paroles maiņai ir nepieciešama pašreizējā parole
Savietojams ar 1998. gada Bērnu tiešsaistes privātuma aizsardzības likumu (COPPA).

1. Atveriet administratora vadības paneli:
Valodas un frāzes — lejupielādēt/augšupielādēt valodas.
2. Laukā "VAINU augšupielādējiet XML failu no sava datora" ievadiet ceļu uz
vbulletin-language_ru.xml failu savā datorā.
3. Opcijā "Pārrakstīt valodu" atlasiet "Izveidot jaunu valodu".
4. Laukā "Augšupielādētās valodas nosaukums" ievadiet valodas nosaukumu.
Ja ievadīto datu nav, valoda tiks saukta par "krievu (RU)"
5. Iestatiet “Jā” uz “Ignorēt valodas versiju”.
6. Iestatiet "Jā" uz "Lasīt rakstzīmju kopu no XML faila".
7. Noklikšķiniet uz pogas "Importēt" un gaidiet, līdz lejupielādes process tiks pabeigts.
7A Ja vēlaties, varat iestatīt jauno valodu kā "noklusējuma" valodu,
noklikšķinot uz blakus esošās pogas "Noklusējums".





  • No:
  • Reģistrēts: 2014.07.07
  • Ziņas: 3,825
  • Man vienkārši patīk PunBB:
  • 5 gadi, 8 mēneši, 20 dienas,
  • Patīk: 480

Tēma: Kurš forums ir labāks vBulletin vai PunBB

VBulletin (Vobla vai Bulka, kā mums patīk to saukt) ir viens no vecākajiem komerciālajiem forumu dzinējiem, kas rakstīts, izmantojot PHP un MySQL tehnoloģijas. Kopš pašas pirmās versijas izlaišanas 2000. gadā ir veikts milzīgs darbs, lai uzlabotu funkcionalitāti, kas ļāva VB iekļūt labāko programmatūras produktu sarakstā.

VBulletin licence jums izmaksās aptuveni 250 USD. Nevilcinieties, tā ir pilnīgi pamatota izšķērdība un noteikti atmaksāsies, ietaupot darba laiku un nervu šūnas. Lielākā daļa šīs naudas nonāk izstrādātājiem un programmētājiem, kuri vēlāk to izmantos, lai uzlabotu funkcionalitāti un izdotu ielāpus un papildinājumus (jā, visi atjauninājumi gada laikā tiks piegādāti jums bez maksas).

2 Atbildēt no PunBB

  • No: Maskava, Sovhoznay 3, apt. 98
  • Reģistrēts: 2014.07.07
  • Ziņas: 3,825
  • Man vienkārši patīk PunBB:
  • 5 gadi, 8 mēneši, 20 dienas,
  • Patīk: 480

Nav jēgas uzskaitīt visas VBulletin funkcijas. Viņi ieviesa gandrīz visu, kas foruma administratoriem varētu būt nepieciešams. Podcasting, vairāku citātu atbalsts, iedalījums sociālajās grupās un kopienās, reitingu sistēma (reputācija). Pamatpaketi var papildināt ar trešo pušu paplašinājumiem.

VBulletin foruma dzinējs rada nopietnu slodzi uz serveri, it īpaši, ja ir instalēti trešo pušu papildinājumi un skripti. Lai turpmāk izvairītos no problēmām ar lapu ielādi, jums būs jāmeklē parasta mitināšana. It īpaši, ja nākotnē prognozējat lielu trafiku savam resursam.

3 Atbildēt no PunBB

  • No: Maskava, Sovhoznay 3, apt. 98
  • Reģistrēts: 2014.07.07
  • Ziņas: 3,825
  • Man vienkārši patīk PunBB:
  • 5 gadi, 8 mēneši, 20 dienas,
  • Patīk: 480

Re: Kurš forums ir labāks vBulletin vai PunBB

VBulletin tā ārkārtējās izturības pret uzlaušanu un surogātpasta robotiem dēļ ir ieteicams izmantot lielos, nopietnos projektos. Turklāt noklusējuma iestatījumus un konfigurācijas failus var viegli mainīt pēc savas gaumes, panākot vēl lielāku efektu. Internetā ir daudz instrukciju un rokasgrāmatu no amatniekiem, lai gan ne visiem no tiem vajadzētu uzticēties.

VBulletin, īsteno liela mēroga idejas vislabākajā iespējamajā veidā. Pastāvīgi atjauninājumi, augstas kvalitātes serviss, papildu paplašinājumi un uzticami drošības mehānismi - tas viss pilnībā attaisno produktam iztērēto naudu.

4 Atbildēt no PunBB

  • No: Maskava, Sovhoznay 3, apt. 98
  • Reģistrēts: 2014.07.07
  • Ziņas: 3,825
  • Man vienkārši patīk PunBB:
  • 5 gadi, 8 mēneši, 20 dienas,
  • Patīk: 480

Re: Kurš forums ir labāks vBulletin vai PunBB

Nav jēgas uzskaitīt visas funkcijas - tas (vai papildinājumos) realizē gandrīz visu, kas administratoram var būt nepieciešams, lai izveidotu forumu. Ir arī vairāku citātu rakstīšana, apraides un lietotāju kopienu un sociālo grupu atbalsts, elastīga reputācijas sistēma un daudz kas cits.

Protams, vBulletin ir liels skaits pievienojumprogrammu un lietotāju kopienu, tāpēc ar apkopi nebūs problēmu, jo īpaši tāpēc, ka ir oficiāls atbalsta dienests. vBulletin trūkums, lai arī ne pārāk liels, ir maksas papildinājumi, piemēram, lietotāju emuāriem.

Kopumā forumam nav nekādu trūkumu. To var ieteikt lieliem nopietniem projektiem tieši tā uzticamības un izturības pret visa veida uzbrukumiem dēļ. Rezultātā tas rada ievērojamu slodzi uz serveri, it īpaši, ja ir instalēti papildinājumi, bet nopietniem projektiem parasti tiek izmantoti nopietni serveri un nopietni administratori.

Jebkuram dzinējam ir nepieciešamas noteiktas darbības, lai to optimizētu labākai un ātrākai darbībai. Mūsu gadījumā mēs runāsim par Vbulletin 4 optimizāciju.

Tā kā mūsu foruma dzinējs tiek pastāvīgi atjaunināts, es nerakstīšu par iepriekšējo Vbulletin versiju optimizāciju, bet sākšu ar versiju 4.1.12. Lai gan tas ir iespējams, es pakāpeniski papildināšu šo rakstu ar optimizāciju iepriekšējām versijām, jo ​​ne visi pāriet uz jaunākām.

Šeit es sniegšu dažus piemērus, lai padarītu jūsu Vbulletin forumu ātrāku un labāku (sākot ar visvienkāršākajām lietām, pārejot uz sarežģītākām). Lūdzu, ņemiet vērā, ka lietas, kas darbojas man, var nebūt piemērotas jums. Tāpēc jūs veicat visas izmaiņas, uzņemoties risku un risku.

Atspējot lietotāju sarakstu.

Ir vienkāršs veids, vienkārši atspējojiet funkciju AdminCP. (Iestatījumi -> Opcijas -> Lietotāju saraksta opcijas)

Tas, protams, nav globāls, un jūs varat to izlaist un nedarīt, vienkārši pajautājiet sev, vai jums tas ir nepieciešams? Kopš saraksta lietotāji var to kārtot, redzēt, kuram ir vairāk ziņojumu, reputāciju utt. Vai jūsu lietotāji to izmanto? Droši vien nē... kad pēdējo reizi jūs pats izmantojāt šo sarakstu?

Man šķiet, ka šie saraksti ir paredzēti tikai surogātpasta sūtītājiem, jo ​​tas ir vienkāršākais veids, kā savākt visus Vbulletin 4 foruma dalībnieku vārdus surogātpasta sūtīšanai privātās ziņās.

Turklāt vaicājums, kas nepieciešams, lai izveidotu lietotāju sarakstu, ir šausmīgs datu bāzes serveriem un var izraisīt lielu servera slodzi.

Palielināts ātrums, apstrādājot privāto ziņojumu sarakstu.

Ja jūs nekad neesat importējis privātās ziņas no ārējiem avotiem, izmantojot Impex vai citus līdzekļus, varat droši paļauties uz privāto ziņojumu kārtošanu pēc ID. Kārtošana pēc ID nodrošinās, ka datu bāzes serverim privātie ziņojumi nav jāievieto pagaidu tabulā, lai veiktu kārtošanu (padarot vaicājumu daudz ātrāku).

Lai to izdarītu, jums ir jāraksta neliels modulis ar atrašanās vietu private_messagelist_filter un jāieraksta tajā:

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

Un viss, jūs tikko padarījāt private.php par ~20% ātrāku.


Mēs konfigurējam efektīvāku jaunāko lietotāja ziņojumu meklēšanu.

Mēs ejam uz ftp, meklējam failu include / class_userprofile.php un aizstājam tajā esošos datus šādi, meklējiet:

$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 . "pavediens KĀ pavediens USING (threadid) WHERE thread.visible = 1 UN post.userid = " . $this->userinfo["lietotāja identifikators"] . " UN post.visible = 1 ORDER BY post.dateline DESC IEROBEŽOTS 20");

un aizstājiet to ar šo (precīzāk PASŪTĪT PĒC):

$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 . "pavediens KĀ pavediens USING (threadid) WHERE thread.visible = 1 UN post.userid = " . $this->userinfo["lietotāja identifikators"] . " UN post.visible = 1 ORDER BY post.postid DESC IEROBEŽOTS 20");

Tas padara vaicājumu nedaudz pareizāku nekā pašlaik. Tādējādi jums nav jākārto pagaidu tabulā. Lietotājiem, kuriem ir vairāk nekā 1000 ziņojumu, sākotnējais pieprasījums aizņemtu apmēram 10 sekundes, mūsu gadījumā daudz mazāk. Tas galvenokārt attiecas uz Vbulletin 4 lietotāja profilu, lai parādītu jaunākās ziņas.

Tēmu rādītāja pārbaude.

Ja jūsu forumos ir noklusējuma kārtošanas secība un tie ir iestatīti kā tas ir, kā mēs to darījām iepriekš, pārliecinieties, vai visi jūsu indeksi ir to tabulās. bija gadījumi, kad indeksi man nezināmu iemeslu dēļ krustojās un daži forumi neatvērās.

Mans ieteikums ir izveidot tā, lai noklusējuma kārtošana būtu datums (kolonna, kurā tiek izmantoti šie dati, tiek saukta par "datuma līniju"), un, lai to īstenotu, mēs izpildām vaicājumu:

ALTER TABLE pavediens ADD INDEX forumid2_dp (forumid, redzams, lipīgs, datuma līnija)

Šis pieprasījums attiecas tieši uz mani, jūsu gadījumā forumid2_dp ir jābūt jūsu vārdam. Izmantojiet uz savu risku.

Esiet piesardzīgs, instalējot papildinājumus.

Tas, ka kāds ražo moduļus un uzlaušanu, nenozīmē, ka tie ir radīti tieši jums, ir strādājuši lielajos Vbulletin 4 forumos un tiem nav kļūdu. Lielisks piemērs ir ziņojumi par masveida uzlaušanu, izmantojot šo vai citu uzlaušanu.

Protams, var pieņemt, ka izstrādātāji nevar atskaitīties par visu un sašķūrēt visus uzlauzumus, lai tie nekonfliktētu, bet... Pārliecinieties, ka modulis Vbulletin neizraisa lielas datu bāzes noslodzes, pārliecinieties, ka uzlaušanai ir potenciāls aizsargāt pret SQL injekciju vai XSS. Diemžēl ir tūkstošiem lietojumprogrammu un modifikāciju, un vienkārši nav reāli visu pārbaudīt. Būtu labāk, ja pats uzrakstītu visus hackus, vai pasūtīs no kāda. Īpaši jums un jūsu uzdevumiem.

Neizmantojiet tabulas InnoDB.

Šeit, protams, viņi var spļaut man sejā, jo šī tēma jau ir apspriesta miljons reižu, bet no savas pieredzes varu teikt, ka es 100% strādāju pie MyISAM galdiem jebkurai darbībai. Dažreiz es apstrādāju 1000 pieprasījumus sekundē.

Ja jūs jau sākat satraukties, kur viss karājas, kad veicat vaicājumu, it īpaši jaunajā Vbulletin meklēšanā, mainiet InnoDB tabulas MyISAM. MyISAM ātrāk reaģē uz atsevišķiem pieprasījumiem, jo ​​nav nepieciešams pārvaldīt atsevišķu ierakstu bloķēšanu. InnoDB kopumā ir ātrāks, bet tikai tāpēc, ka tas ļauj vaicājumus izpildīt vienlaikus. ja jūsu vaicājumi jau ātri darbojas MyISAM, nav nepieciešams pārslēgties uz InnoDB. IMHO.

Raksta vērtējums

0%

Vērtējums

lietotāju vērtējums: 0,35 (1 balsis)

Galvenās priekšrocības:

  • Ātra un efektīva datubāze
  • Veidnes interfeiss
  • Jaudīga meklētājprogramma
  • Vairāku valodu atbalsts
  • Lietotāju profili
  • Jaudīgs un lietotājam draudzīgs administratora panelis
  • Neierobežots skaits sadaļu/tēmu/ziņu
  • E-pasta paziņojumi
  • COPPA atbalsts

Sakarā ar to, ka ražotājs nesniedz foruma demo, ko var instalēt, man bija jāinstalē kreisā versija, kas lejupielādēta no kaut kāda warez. Tāpēc instrukcijas var precīzi neatbilst licencēta foruma instalēšanas procesam. Pēc uzstādīšanas vietne tika noņemta un netika izmantota paredzētajam mērķim.

Lai instalētu vBulletin, dodieties uz hostinga vadības paneli (poga ar zobratu blakus hostinga pasūtījumam rēķinā), dodieties uz "Failu pārvaldnieks", dodieties uz direktoriju "www". Noklikšķiniet uz pogas Augšupielādēt failu pašreizējā direktorijā:

Norādiet ceļu uz failu savā datorā:

Atlasiet arhīvu ar vBulletin, izpakojiet to:

Mēs dzēšam nevajadzīgos failus un direktorijus, tostarp mūsu www domēna direktoriju, ar nosacījumu, ka jums tur nav nekā nepieciešama. Ja jūs to neievietojat vietnes saknē vai vietnes direktorijā ir kaut kas nepieciešams, jums nav jādzēš domēna www direktorijs:

Atlasiet direktoriju ar vBulletin instalētāju, pārdēvējiet to:

Ievadiet mūsu vietnes nosaukumu kā direktorijas nosaukumu:

Atveriet mitināšanas vadības paneļa sadaļu "Datu bāzes":

Izveidojiet jaunu MySQL datu bāzi un lietotāju ar pilnām piekļuves tiesībām tai:

Lūdzu, ņemiet vērā, ka gan lietotājam, gan datubāzei hostinga serverī automātiski tiek pievienots jūsu konta nosaukums:

Dodamies uz mūsu vietnes galveno lapu, tiek parādīta šāda vBulletin kļūda:

Mēs braucam pa ceļu uz instalēšanas programmu adreses joslā, jums jāpievieno "install / install.php", pēc kura tiek palaista vBulletin foruma instalēšanas programma:

vBulletin instalēšanas programma pārbauda failus:

Nākamais solis ir pārbaudīt savienojumu ar datu bāzi, tas neiztur - jo Foruma konfigurācijas failā ievadīti nepareizi dati:

Mēs atgriežamies pie hostinga vadības paneļa, failu pārvaldnieka, dodamies uz foruma direktoriju, pēc tam uz apakšdirektoriju "includes". Atveriet failu "config.php":

Mēs ievadām pareizos datus no datu bāzes konfigurācijas failā, pēc tam to aizveram:

Mēs atgriežamies vietnē, pie uzstādītāja. nospiediet "F5", šoreiz viss ir kārtībā, savienojums ar bāzi ir audzis kopā:

vBulletin instalēšanas programma datu bāzē izveido tabulas:

VBulletin instalētājs maina dažu tabulu veidus:

Datu ievadīšana datu bāzē:

Importētās valodas:

Stili tiek importēti:

Palīdzība tiek importēta:

Mēs nepieskaramies noklusējuma iestatījumiem, vBulletin instalētājs visu pareizi noteica:

Tiek importēti noklusējuma iestatījumi:

Ievadiet vBulletin administratora informāciju:

vBulletin administrators ir veiksmīgi pievienots:

vBulletin instalēšana hostingā ir veiksmīgi pabeigta:

Ievērojot pēdējo instalētāja ieteikumu, izdzēsiet nevajadzīgos failus:

Varat doties uz vBulletin forumu, lai pārliecinātos, ka viss darbojas pareizi: