Vbulletin berdarah dingin. Forum mana yang lebih baik vBulletin atau PunBB

Anda pasti pernah melihat forum di mesin vBulletin lebih dari sekali. Forum seperti itu tidak lagi berada di puncak mode, tetapi vBulletin masih menjadi salah satu mesin paling populer. Dalam versi terbarunya (kelima), ditemukan beberapa kerentanan yang dapat sangat merusak kehidupan seorang administrator. Pada artikel ini, saya akan menunjukkan cara kerjanya.

Masalah pertama adalah pemfilteran data pengguna yang salah. Hal itu dilaporkan oleh seorang peneliti keamanan independen yang ingin tetap anonim. Kerentanan, meskipun memiliki beberapa keterbatasan, telah menerima status kritis, karena memungkinkan membaca file apa pun dan mengeksekusi kode arbitrer pada sistem target.

Kerentanan kedua ditemukan oleh peneliti dari TRUEL IT dan menerima pengenal CVE-2017-17672. Ini terkait dengan kekhasan deserialisasi data di mesin dan dapat digunakan oleh penyerang untuk menghapus file arbitrer dalam sistem.

Laporan lengkap yang merinci kedua masalah telah diterbitkan sebagai bagian dari program Beyond Security SecuriTeam. Ada juga eksploitasi PoC untuk menunjukkan kerentanan. Mari kita lalui semua ini secara berurutan.

persiapan

Saya menggunakan distribusi WAMP sebagai server.

Membaca file, menjalankan perintah

Jadi, alasan kerentanan pertama adalah logika yang salah saat memproses parameter routestring, yang memungkinkan penyerang menambahkan file apa pun ke disk melalui include dan mengeksekusi kode PHP yang ada di dalamnya.

Jalur kami dimulai dengan file yang paling penting - index.php, di mana inisialisasi dasar aplikasi berlangsung.

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

Mari kita lihat metode vB5_Frontend_Application::init.

/includes/vb5/frontend/application.php
13: class vB5_Frontend_Application meluas vB5_ApplicationAbstract 14: ( 15: public static function 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();

Di sini kita tertarik dengan metode setRoutes.

47: fungsi publik setRoutes() 48: ( 49: $this->processQueryString(); ... 54: if (isset($_GET["routestring"])) 55: ( 56: $path = $_GET[" string rute"];

Variabel $path mendapatkan nilai userdata dari parameter routestring. Anda dapat melewati jalur ke halaman forum ke dalamnya, dan itu akan dimuat.



Katakanlah kita lulus /test .

Setelah variabel ditetapkan, sepotong kode mengikuti yang menghilangkan garis miring di awal baris, jika ada.

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

Seperti yang Anda lihat, ceknya agak aneh. Paling tidak, keberadaan daftar ekstensi terlarang yang dijahit langsung ke dalam kode membingungkan. Dan secara umum, fakta bahwa ekstensi diperoleh dengan memotong empat karakter dari akhir baris (baris 85) membingungkan. Secara umum, jika kita mencoba untuk mendapatkan file gif, png, jsp, css atau js, server akan mengembalikan halaman 404 dan skrip akan berhenti berjalan. Ketika semua pemeriksaan dilewati, metode getRoute dari kelas vB_Api_Route dipanggil menggunakan callApi . Ia mencari rute yang sesuai berdasarkan informasi yang diberikan oleh pengguna.

Lanjutan tersedia hanya untuk anggota

Opsi 1. Bergabunglah dengan komunitas "situs" untuk membaca semua materi di situs

Keanggotaan dalam komunitas selama periode yang ditentukan akan memberi Anda akses ke SEMUA materi Peretas, meningkatkan diskon kumulatif pribadi Anda dan memungkinkan Anda untuk mengumpulkan peringkat Skor Xakep profesional!

Untuk tujuan informasi saja. Admin tidak bertanggung jawab atas isinya. Download Gratis .


vBulletin Connect v5.3.3 adalah paket forum yang kuat, skalabel, dan dapat disesuaikan sepenuhnya untuk situs Anda.

Versi: kapan: 5.3.3 (Dibatalkan oleh vBSupport.org)

Persyaratan minimum php 5.6
Kompatibilitas dengan php 7.1
Pada instalasi baru, Anda harus mengganti nama file htaccess.txt menjadi .htaccess
Saat memperbarui, hapus folder font (sebelum memulai pembaruan).

Kesempatan baru:
UI baru dengan integrasi sosial yang luas;
Dioptimalkan untuk perangkat seluler;
Instalasi, manajemen, dan konfigurasi yang disederhanakan;
Arsitektur database baru untuk pencarian yang lebih baik dan kinerja yang lebih baik;
Perubahan konten dinamis yang nyaman;
Diperpanjang untuk berbagi video dan gambar;
Integrasi penuh dengan VigLink;
Lebih dari 100 fitur dan peningkatan baru lainnya;

Aplikasi Tertanam:
Forum Diskusi
Grup
jajak pendapat
Blog

Optimisasi Mesin Pencari:
URL Ramah SEO
Kata kunci/deskripsi khusus META tag

Fleksibilitas:
Profil pengguna yang dapat diperluas
penulisan ulang URL
Lokalisasi antarmuka
metadata

Standar kepatuhan:
Konten sindikat (RSS)
Sindikasi konten: RSS, Atom, XML
Kompatibel dengan PHP v5.4

Sistem terintegrasi tanpa putus:
Login tunggal terlibat
Satu-satunya sistem izin
Satu-satunya panel kontrol admin
Buat Gaya/Tema berkelanjutan melalui Artikel, Blog, Forum

Panel kontrol untuk setiap peran:
Kontrol administratif
Panel kontrol moderator
Panel Kontrol Pengguna
Sistem Izin Bersama
Mesin template daya untuk penyesuaian tingkat lanjut

Kontrol pengguna:
Sistem multi-pengguna dengan peran dan kekuatan tak terbatas
Grup yang terlibat
Keamanan
Kekuatan Granular
Pemberitahuan Masalah
SSL yang kompatibel
captcha
Verifikasi email
Editor berita panel kontrol administrator
Masuk sistem "serangan"
Perubahan Email dan Kata Sandi memerlukan kata sandi saat ini
Kompatibel dengan Children's Online Privacy Protection Act (COPPA) 1998

1. Buka panel kontrol administrator:
Bahasa & Frasa - Unduh / Unggah Bahasa.
2. Di bidang "BAIK Unggah file XML dari komputer Anda", masukkan jalur ke
vbulletin-language_ru.xml di komputer Anda.
3. Pada opsi "Timpa Bahasa", pilih "Buat Bahasa Baru"
4. Di bidang "Judul untuk Bahasa yang Diunggah", masukkan nama bahasa.
Dengan tidak adanya data yang dimasukkan, bahasa akan disebut "Rusia (RU)"
5. Setel "Ya" ke "Abaikan Versi Bahasa"
6. Setel "Ya" ke "Baca Charset dari File XML"
7. Klik tombol "Impor" dan tunggu proses pengunduhan selesai.
7A Jika diinginkan, Anda dapat menjadikan bahasa baru sebagai bahasa "Default",
dengan mengklik tombol "Default" di sebelahnya.





  • Dari:
  • Terdaftar: 2014.07.07
  • Postingan: 3,825
  • Saya suka PunBB:
  • 5 bertahun-tahun, 8 bulan, 20 hari,
  • Suka: 480

Topik: Forum mana yang lebih baik vBulletin atau PunBB

VBulletin (Vobla atau Bulka, begitu kami menyebutnya) adalah salah satu mesin forum komersial tertua yang ditulis menggunakan teknologi PHP dan MySQL. Sejak rilis versi pertama pada tahun 2000, pekerjaan luar biasa telah dilakukan untuk meningkatkan fungsionalitas, yang memungkinkan VB masuk ke dalam daftar produk perangkat lunak terbaik.

Lisensi VBulletin akan dikenakan biaya sekitar $250. Jangan ragu, ini adalah pemborosan yang sepenuhnya dibenarkan dan pasti akan membayar sendiri dengan menghemat waktu kerja dan sel-sel saraf. Sebagian besar uang ini diberikan kepada pengembang dan pemrogram, yang nantinya akan menggunakannya untuk menyempurnakan fungsionalitas dan merilis patch dan add-on (ya, semua pembaruan akan dikirimkan kepada Anda secara gratis sepanjang tahun).

2 Balas oleh PunBB

  • Dari: Moskow, Sovkhoznay 3, apt. 98
  • Terdaftar: 2014.07.07
  • Postingan: 3,825
  • Saya suka PunBB:
  • 5 bertahun-tahun, 8 bulan, 20 hari,
  • Suka: 480

Tidak masuk akal untuk menghitung semua fungsi VBulletin. Mereka menerapkan hampir semua yang mungkin dibutuhkan oleh administrator forum. Podcasting, dukungan multiquoting, pembagian ke dalam kelompok dan komunitas sosial, sistem penilaian (reputasi). Paket dasar dapat dilengkapi dengan ekstensi pihak ketiga.

Mesin forum VBulletin membuat beban serius di server, terutama jika add-on dan skrip pihak ketiga diinstal. Untuk menghindari masalah dengan memuat halaman di masa mendatang, Anda harus membayar untuk hosting biasa. Terutama jika Anda memprediksi banyak lalu lintas ke sumber daya Anda di masa depan.

3 Balas oleh PunBB

  • Dari: Moskow, Sovkhoznay 3, apt. 98
  • Terdaftar: 2014.07.07
  • Postingan: 3,825
  • Saya suka PunBB:
  • 5 bertahun-tahun, 8 bulan, 20 hari,
  • Suka: 480

Re: Forum mana yang lebih baik vBulletin atau PunBB

VBulletin, karena ketahanannya yang ekstrem terhadap peretasan dan bot spam, direkomendasikan untuk digunakan dalam proyek besar dan serius. Selain itu, pengaturan default dan file konfigurasi dapat dengan mudah diubah sesuai selera Anda, mencapai efek yang lebih besar. Ada banyak instruksi dan panduan di Internet dari pengrajin, meskipun tidak semuanya harus dipercaya.

VBulletin, mengimplementasikan ide-ide berskala besar dengan cara terbaik. Pembaruan konstan, layanan berkualitas tinggi, ekstensi tambahan, dan mekanisme keamanan yang andal - semua ini sepenuhnya membenarkan uang yang dihabiskan untuk produk.

4 Balas oleh PunBB

  • Dari: Moskow, Sovkhoznay 3, apt. 98
  • Terdaftar: 2014.07.07
  • Postingan: 3,825
  • Saya suka PunBB:
  • 5 bertahun-tahun, 8 bulan, 20 hari,
  • Suka: 480

Re: Forum mana yang lebih baik vBulletin atau PunBB

Tidak masuk akal untuk membuat daftar semua fungsi - itu (atau sebagai tambahan) mengimplementasikan hampir semua yang mungkin diperlukan administrator untuk membuat forum. Ada juga multiquoting, dan dukungan untuk podcasting, dan komunitas pengguna, dan grup sosial, dan sistem reputasi yang fleksibel, dan banyak lagi.

Tentu saja vBulletin memiliki banyak add-on dan komunitas pengguna, sehingga tidak akan ada masalah pemeliharaan, terutama karena ada layanan dukungan resmi. Kerugian dari vBulletin, meskipun tidak terlalu besar, adalah add-on berbayar, misalnya, untuk blog pengguna.

Secara umum, forum tidak memiliki kekurangan. Ini dapat direkomendasikan untuk proyek-proyek besar yang serius justru karena keandalan dan ketahanannya terhadap semua jenis serangan. Akibatnya, ini menciptakan beban yang signifikan di server, terutama dengan add-on yang diinstal, tetapi untuk proyek yang serius, server yang serius dan administrator yang serius biasanya digunakan.

Setiap mesin memerlukan tindakan tertentu untuk mengoptimalkannya untuk kinerja yang lebih baik dan lebih cepat. Dalam kasus kami, kami akan berbicara tentang pengoptimalan Vbulletin 4.

Karena mesin forum kami terus diperbarui, saya tidak akan menulis tentang pengoptimalan versi Vbulletin sebelumnya, tetapi saya akan mulai dengan versi 4.1.12. Meskipun mungkin, saya akan secara bertahap melengkapi artikel ini dengan pengoptimalan untuk versi sebelumnya, karena tidak semua orang beralih ke yang lebih baru.

Di sini saya akan memberikan beberapa contoh untuk membuat forum Vbulletin Anda lebih cepat dan lebih baik (dimulai dengan hal yang paling sederhana, beralih ke yang lebih kompleks). Harap diingat bahwa hal-hal yang berhasil untuk saya belum tentu berhasil untuk Anda. Oleh karena itu, Anda membuat semua perubahan atas risiko dan risiko Anda sendiri.

Nonaktifkan daftar pengguna.

Ada cara mudah, nonaktifkan saja fitur yang ada di AdminCP. (Pengaturan -> Opsi -> Opsi Daftar Pengguna)

Tentu saja ini tidak global, dan Anda dapat melewatinya dan tidak melakukannya, tanyakan pada diri Anda sendiri apakah Anda membutuhkannya? Sejak memiliki daftar, pengguna dapat mengurutkannya, melihat siapa yang memiliki lebih banyak pesan, reputasi, dan sebagainya. Apakah pengguna Anda menggunakannya? Mungkin tidak… kapan terakhir kali Anda sendiri menggunakan daftar ini?

Bagi saya, menurut saya daftar ini hanya untuk kepentingan spammer, karena ini adalah cara termudah untuk mengumpulkan semua nama anggota forum Vbulletin 4 untuk spam dalam pesan pribadi.

Selain itu, kueri yang diperlukan untuk menghasilkan daftar pengguna sangat buruk untuk server basis data dan dapat menyebabkan beban berat pada server.

Peningkatan kecepatan saat memproses daftar pesan pribadi.

Jika Anda belum pernah mengimpor pesan pribadi dari sumber eksternal menggunakan Impex atau cara lain, Anda dapat dengan aman mengandalkan pengurutan berdasarkan ID untuk pesan pribadi. Pengurutan berdasarkan ID akan memastikan bahwa server database Anda tidak perlu membuang pesan pribadi ke dalam tabel sementara untuk melakukan pengurutan (membuat kueri lebih cepat).

Untuk melakukan ini, Anda perlu menulis modul kecil dengan lokasi di private_messagelist_filter dan menulis yang berikut di dalamnya:

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

Dan hanya itu, Anda baru saja membuat private.php ~20% lebih cepat.


Kami mengonfigurasi pencarian yang lebih efisien untuk pesan terbaru dari pengguna.

Kita masuk ke ftp, cari file include / class_userprofile.php, dan ganti data di dalamnya sebagai berikut, cari:

$getlastposts = $this->registry->db->query_read_slave(" SELECT thread.title, thread.threadid, thread.forumid, thread.postuserid, post.postid, post.dateline FROM " . TABLE_PREFIX . "posting AS post INNER GABUNG " . TABLE_PREFIX . "thread AS thread MENGGUNAKAN (threadid) WHERE thread.visible = 1 AND post.userid = " . $this->userinfo["userid"] . " AND post.visible = 1 ORDER BY post.dateline DESC BATAS 20");

dan ganti dengan ini (lebih spesifik 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 . "posting AS post INNER GABUNG " . TABLE_PREFIX . "thread AS thread MENGGUNAKAN (threadid) WHERE thread.visible = 1 AND post.userid = " . $this->userinfo["userid"] . " AND post.visible = 1 ORDER BY post.postid DESC BATAS 20");

Ini membuat kueri sedikit lebih benar daripada saat ini. Dengan demikian, Anda tidak perlu mengurutkan ke dalam tabel sementara. Untuk pengguna yang memiliki lebih dari 1000 pesan, permintaan awal akan memakan waktu sekitar 10 detik, dalam kasus kami jauh lebih sedikit. Ini terutama berlaku untuk profil pengguna Vbulletin 4 untuk menampilkan posting terbaru.

Pemeriksaan indeks topik.

Jika forum Anda memiliki urutan pengurutan default, dan disetel tidak berubah seperti yang kami lakukan di atas, pastikan semua indeks Anda ada di tabelnya. ada kasus ketika indeks, untuk alasan yang tidak saya ketahui, berpotongan dan beberapa forum tidak terbuka.

Saran saya adalah membuatnya sehingga pengurutan default adalah tanggal (kolom yang menggunakan data ini disebut "garis tanggal"), dan untuk mengimplementasikannya, kami menjalankan kueri:

ALTER TABLE thread ADD INDEX forumid2_dp (forumid, visible, sticky, dateline)

Permintaan ini berlaku untuk saya secara khusus, dalam kasus Anda forumid2_dp harus menjadi nama Anda. Gunakan dengan risiko Anda sendiri.

Berhati-hatilah saat memasang add-on.

Hanya karena seseorang membuat modul dan peretasan tidak berarti mereka dibuat hanya untuk Anda, bekerja di forum besar Vbulletin 4, dan tidak memiliki bug. Contoh yang sangat baik adalah laporan peretasan besar-besaran, melalui peretasan ini atau itu.

Tentu saja, orang dapat berasumsi bahwa pengembang tidak dapat menjelaskan semuanya dan menyekop semua peretasan agar tidak bertentangan, tetapi... Pastikan modul Vbulletin tidak menyebabkan beban basis data yang berat, pastikan peretasan telah potensi untuk melindungi terhadap injeksi SQL atau XSS. Sayangnya, ada ribuan aplikasi dan modifikasi, dan tidak realistis untuk memeriksa semuanya. Akan lebih baik jika Anda menulis semua peretasan sendiri, atau memesan dari seseorang. Khusus untuk Anda dan tugas Anda.

Jangan gunakan tabel di InnoDB.

Di sini, tentu saja, mereka dapat meludahi wajah saya, karena topik ini telah dibahas jutaan kali, tetapi dari pengalaman saya sendiri, saya dapat mengatakan bahwa saya bekerja 100% pada tabel MyISAM untuk tindakan apa pun. Terkadang saya memproses 1000 permintaan per detik.

Jika Anda sudah mulai panik di mana semuanya macet saat Anda melakukan kueri, terutama dalam pencarian Vbulletin baru, ubah tabel InnoDB di MyISAM. MyISAM merespon lebih cepat untuk permintaan individu karena tidak perlu mengelola penguncian pada catatan individu. InnoDB lebih cepat secara umum, tetapi hanya karena memungkinkan kueri berjalan secara bersamaan. jika kueri Anda sudah berjalan cepat di bawah MyISAM, tidak perlu beralih ke InnoDB. MENURUT OPINI SAYA.

Peringkat Artikel

0%

Peringkat

peringkat pengguna: 0,35 (1 suara)

Keuntungan utama:

  • Berbasis database yang cepat dan efisien
  • Antarmuka template
  • Mesin pencari yang tangguh
  • Dukungan multi-bahasa
  • Profil pengguna
  • Panel admin yang kuat dan ramah pengguna
  • Jumlah bagian/topik/pesan tidak terbatas
  • Notifikasi email
  • Dukungan COPPA

Karena pabrikan tidak menyediakan demo forum yang dapat diinstal, saya harus menginstal versi kiri yang diunduh dari beberapa jenis warez. Jadi petunjuknya mungkin tidak sama persis dengan proses pemasangan forum berlisensi. Setelah instalasi, situs tersebut dihapus dan tidak digunakan untuk tujuan yang dimaksudkan.

Untuk menginstal vBulletin, buka panel kontrol hosting (tombol dengan roda gigi di sebelah urutan hosting dalam penagihan), buka "Manajer File", buka direktori "www". Klik tombol "Unggah file ke direktori saat ini":

Tentukan jalur ke file di komputer Anda:

Pilih arsip dengan vBulletin, buka paketnya:

Kami menghapus file dan direktori yang tidak kami perlukan, termasuk direktori domain www kami - asalkan Anda tidak memiliki apa pun yang Anda perlukan di sana. Jika Anda tidak meletakkannya di root situs, atau ada sesuatu yang diperlukan di direktori situs, Anda tidak perlu menghapus direktori www domain:

Pilih direktori dengan penginstal vBulletin, ganti namanya:

Masukkan nama situs kami sebagai nama direktori:

Buka bagian "Database" pada panel kontrol hosting:

Buat database MySQL baru, dan pengguna dengan hak akses penuh untuk itu:

Harap dicatat bahwa pengguna dan database secara otomatis diawali dengan nama akun Anda di server hosting:

Kami pergi ke halaman utama situs kami, kami mendapatkan kesalahan vBulletin berikut:

Kami berkendara di jalur ke penginstal di bilah alamat, Anda perlu menambahkan "install / install.php", setelah itu program instalasi forum vBulletin diluncurkan:

Penginstal vBulletin memeriksa file:

Langkah selanjutnya adalah memeriksa koneksi ke database, tidak lulus - karena Data yang dimasukkan salah dalam file konfigurasi forum:

Kami kembali ke panel kontrol hosting, pengelola file, pergi ke direktori forum, lalu subdirektori "termasuk". Buka file "config.php":

Kami memasukkan data yang benar dari database ke file konfigurasi, setelah itu kami menutupnya:

Kami kembali ke situs, ke penginstal. tekan "F5", kali ini semuanya baik-baik saja, koneksi ke pangkalan telah tumbuh bersama:

Penginstal vBulletin membuat tabel dalam database:

Penginstal vBulletin mengubah jenis beberapa tabel:

Memasukkan data ke database:

Bahasa yang diimpor:

Gaya diimpor:

Bantuan diimpor:

Kami tidak menyentuh pengaturan default, penginstal vBulletin dengan benar menentukan semuanya:

Pengaturan default diimpor:

Masukkan detail administrator vBulletin:

Admin vBulletin berhasil ditambahkan:

Instalasi vBulletin di hosting berhasil diselesaikan:

Mengikuti saran terakhir dari penginstal, hapus file yang tidak perlu:

Anda dapat pergi ke forum vBulletin untuk memastikan semuanya bekerja dengan benar: