امنیت

ضعف امنیتی zpanel 10.0.2

چند روز پیش داشتم سایتی رو چک می کردم برای مشکلات امنیتیش. زیر دامنه ها رو چک کردم که یکیش صفحه ورود کنترل پنل میزبانی رو می آورد.

بارها و بارها به دوستان و کلاینت ها گفتم که قدم اول هکرها جمع آوری اطلاعاته و سعی کنند که کمترین میزان اطلاعات در اختیار یک هکر قرار بگیره. در این مورد خیلی واضح نرم افزار و نسخه کنترل پنل نوشته شده بود: zpanel 10.0.2

ZPanel

یه جستجوی کوچیک من رو رسوند به نتیجه بررسی های قبلی روی این نسخه و یک ضعف امنیتی خطرناک که عمومی هم شده. بذارید با هم مرور بکنیم مشکل رو تا ببینیم که چه اشتباهات بچگانه و خطرناکی ممکنه توی برنامه نویسی رخ بده.

zpanel یک ماژول داره برای بک آپ گرفتن که این ماژول یه فایل داره برای دانلود فایل های روی سرور. احتمالا برای اینکه ادمین بتونه فایل های بک آپ رو دانلود کنه.

بذارید یه نگاه به متن فایل getdownload.php بندازیم:

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

به قول اون ور آبیا WTF

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

بذارید بریم سر اصل قضیه: یوزر و پسورد سرور. در سرورهای لینوکسی، نام کاربری و پسورد ها رو می شه در فایل های passwd و shadow پیدا کرد. البته به صورت هش شده. (وارد جزییات تنظیمات سرور نمی شم چون یه بحث مجزاست)

همچنین از این آدرس می تونید یه اسکریپت به زبان پایتون بگیرید که به صورت اتوماتیک بک آپ های سرور رو براتون دانلود کنه. دیگه چی می خوایم واقعا؟

مشکل دیگه ای که این نسخه داره، دسترسی آزاد به فایل daemon.php است که باعث می شه هکرها به اطلاعات حساسی مثل نام های کاربری، دسترسی هاشون و سایت هایی که روی سرور قرار دارند دست پیدا کنه.

یه نمونه از خروجی اجرای این فایل رو می تونید اینجا ببینید:

در اطلاعات بالا به جای دامنه ها ستاره گذاشتم که مشکلی برای سایت پیش نیاد.

از اینجا به بعد دیگه برمی گرده به توانایی و خلاقیت هکر که می خواد چطور جلو بره و تا کجا پیش بره. مثلا در همین مورد خاص روی این سرور یک سایت وردپرسی وجود داشت که با دونستن مسیر قرار گیری فایل wp-config.php، اون رو دانلود کردم و نام کاربری و پسورد MySQL رو به دست آوردم که می تونم باهاش به دیتابیس سرور کانکت بشم (در صورتیکه ورود رو به localhost محدود نکرده باشن) و مشخصات کاربرهای اون سایت رو به دست بیارم.

می بینید که یه اشتباه در بررسی نکردن ورودی ها و یا عدم تنظیم درست Permission ها برای اجرای یک فایل می تونه چه تبعاتی داشته باشه.

خب همین الان برید نسخه کنترل پنل هاست رو چک کنید و اگه ضعف شناخته شده داشت یا به روز نبود از سرویس دهنده بخواید که کاریکه وظیفه اش است رو انجام بده.

 

پ ن: این پست فقط در جهت نشان دادن ضعف های Zpanel 10.0.2 است و ترغیب برای برطرف کردن مشکلات. لطفا از این مورد برای آسیب رساندن به دیگران استفاده نکنید.

Standard

10 thoughts on “ضعف امنیتی zpanel 10.0.2

  1. آرمین says:

    خیلی عالی بود
    ممنون
    راستی دیشب یه سر رفته بودم تو سایت http://maktabkhooneh.org/ مکتب خونه که فیلمای آموزشی
    میزاره . میخواستم یه سری فیلم آموزشی دانلود کنم که یهو یاد تو افتادم گفتم برم ببینم میشه این سایتو هک کرد یا نه 🙂 دیدم سایتش داغونه ! ولی خوب چون دیگه دلم براش سوخت هکش نکردم 🙂
    اگه حالش رو داشتی یه سر بهش بزن
    واسه شروع هم برو http://admin.maktabkhooneh.org/sign/in اینجا .
    خوش بگزره 🙂

    • هوشمند says:

      خوبه که تو هر سایتی می رری یه گوشه چشمی هم به امنیتش داری.
      سایتی هم که گفتی واقعا داغون نیست 🙂
      البته ممکنه مشکلاتی داشته باشه که چک می کنم و اگه موردی بود به ادمینش می گم که برطرف کنه
      امثال این سایت ها که به کاربرهای فارسی زبان برای یادگیری کمک می کنند، قابل تقدیرن

  2. Amir says:

    سلام آقا خسته نباشید وبلاگتون خیلی وقت توی بوک مارکم هست آخه یه بحث هایی می کنی که آدم حیفش میاد نخونه آقا یه سئوال داشتم من الان دارم جاوا اسکریپت یاد می گیرم بعد ها php ‌رو هم تو برنامه ی یادگیریم دارم می خواستم یکم راهنماییم کنی که از کجا یواش یواش امنیت وب سایت رو بخونم و از مباحث آسون به مباحث سخت برسم ممنون میشم راهنمایی کنید در ضمن بابت نظر بیجا در این پست کاملا عذر خواهیی میکنم.

    • هوشمند says:

      دوست عزیز به زودی یه پست در این مورد میذارم که هم به خودم کمک کنه برای یادگیری بیشتر و هم به کار دوستای دیگه بیاد

  3. Anyone says:

    ممنون از پست عالی
    فقط یه مشکل موقع اجرای اسکریپت پایتون هست :
    Traceback (most recent call last):
    File “”, line 114
    print infos
    ^
    IndentationError: expected an indented block

    ممنون میشم روش فیکس کردنشو بگید

    • این خطا توی پایتون معمولا وفتی پیش میاد که کد رو کپی کنی و اون اسپیس‌های اول دستورات به هم بریزه.
      چک کن و ببین دستور خط ۱۱۴ متناسب با دستور بالاترش قرار گرفته باشه.

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.