امنیت

میزبان خود را چک کنید – ضعف امنیتی WHMCS

کمتر از ۲۰ روز پیش در این پست در مورد ضعف امنیتی WHMCS نوشتم. این نرم افزار که به عنوان سیستم پشتیبانی و مدیریت کلاینت ها در بسیاری از سرویس دهنده های میزبانی سایت استفاده می شه در نسخه جدید خود همچنان دارای نواقصی است.

PHP از نسخه ۵.۴.۰ استفاده از register_globals رو حذف کرد به این دلیل که تعریف متغیرها در سطح گلوبال باعث می شد متغیرها به وسیله کاربر تغییر کنند و این مورد ضمن اینکه یک سری کاربردهایی می تونست داشته باشه، به شدت می تونست خطرناک هم باشه.

خب حالا بیایم یه نگاهی به فایل dbfunctions.php این نرم افزار بندازیم، جایی که دستورهای ارسالی به دیتابیس رو هندل می کنه:

می بینید که نویسندگان برنامه از متغیرهای گلوبال استفاده کردند. حالا این کجا می تونه آسیب بزنه؟ برای مثال زمانی که کاربرها می خوان ticket ها رو ببینند. اونجا می شه با تذریق کدهای SQL در قالب یک متغیر GET و یا POST اطلاعات دیتابیس رو به دست آورد.

من هم اون مشکل قبلی رو در برخی هاستینگ های ایرانی چک کردم و هم این مشکل رو که متاسفانه نتایج اصلا خوب نبود. از ۱۰ تا هاستینگی که چک کردم ۸ تاشون تا ۲ روز پیش مشکل داشتند و ۲ تاشون رو هم تونستم با نام کاربری و پسورد ادمین به پنل مدیریت وارد بشم.

متاسفانه برخی سرویس دهنده ایرانی کوچکترین توجهی به مسایل امنیتی نکرده و حتی ساده ترین کار که نصب به موقع بسته های به روز رسانی است رو هم انجام نمی دن.

برای اینکه کاربرها بتونن وضعیت میزبانشون رو بررسی کنند و بتونند از میزبان بخوان که کارهای لازم رو انجام بده یک اسکریپت رو آماده کردم که به صورت اتوماتیک این ضعف رو چک می کنه و در صورت نفوذ، نام کاربری ادمین و ایمیلش رو بهتون می ده. البته نسخه اصلی این اسکریپت برای چک کردن گوگل و نفوذ به وصورت رندوم به هاستینگ ها بود و پسوردها رو هم به صورت هش شده در اختیار میذاشت ولی من برای جلوگیری از سو استفاده های احتمالی تغییراتی دادم توش. یکیش اینکه یک آدرس می گیره و بر اساس جستجوی گوگل نیست. دوم اینکه در خروجی، پسوردهای هش شده رو نشون نمی ده.

با استفاده از نتیجه ای که به شما نشون داده خواهد شد می تونید به صورت مستند از هاستینگتون بخواید که به روزرسانی رو انجام بده.

تاکید مجدد: لطفا از این ابزار برای آسیب رسوندن به دیگران استفاده نکنید.

لینک دسترسی به اسکریپت:

منبع و منبع

Standard

5 thoughts on “میزبان خود را چک کنید – ضعف امنیتی WHMCS

  1. Pingback: سوال در مورد مشکل امنیتی whmcs

  2. سارا says:

    سلام ممنون پس راهکار بدید برای عدم استفاده از global یا تامین امنیتش. بعضی جاها واقعا نمیشه استفاده نکرد!

      • سارا says:

        بله ولی اینطوری منظورم بود خطرش چیه :

        وقتی جایی لازم بشه کلی متغیر رو با global به تابعابع وارد کنیم مثلا.

        [php]

        $title = ‘The Title’;

        function show_html () {
        global $title;
        $html = load_html(‘index.html’);
        $html = ”

        $title


        “;
        echo $html;
        }

        show_html ();

        [/php]

        • استفاده از متغیر global و گزینه register_global با هم فرق داره. اون گزینه سبب می شه که متغیرهای ارسالی به اسکریپت PHP مستقیما با نام متغیر در دسترس باشند و مقدار دهی بشن. اما متغیر global همونیه که استفاده کردید و برای دسترسی داشتن به متغیر در متدهای دیگه است.
          بنابراین اگر register_global خاموش باشه، فکر نمی کنم که استفاده از متغیر global مشکلی داشته باشه.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.