طراحی سایت, ساخت ربات تلگرام, آموزش php , سورس کد php ,سورس ربات تلگرام , سورس فروشگاه اینترنتی , آموزش طراحی وب

آسیب پذیری SQL Injection در پلاگین WP Statistics


آسیب پذیری SQL Injection در پلاگین WP Statistics

آسیب پذیری SQL Injection در پلاگین WP Statistics ورژن ۱۲٫۰٫۷ و قدیمی تر که چندین روز پیش توسط شرکت امنیتی Sucuri عمومی شد و چون سایت ما هم از این پلاگین استفاده می کرد و کاربر محور است و اجازه ثبت نام به کاربر را میدهد باعث شد که به تحلیل و بررسی این باگ بپردازیم

 

برای بهره برداری (exploit) این آسیب پذیری ، هکر نیاز دارد که ابتدا در سایت تارگت ثبت نام و یک اکانت ایجاد کند . بعد برای اجرای یک حمله sql injection  به دیتابیس نیاز به یک shortcode دارد .

 

کمپانی معروف در زمینه امنیت وردپرس (Wordfence) به اشتباه یک همچنین پستی را در بلاگ خود منتشر کرده است :

It’s been a tough week for the WP Statistics plugin. Last Friday, Sucuri (now owned by GoDaddy) discovered a SQL injection vulnerability in the WP Statistics plugin version 12.0.7 and older. To exploit the vulnerability, an attacker needs to register an account (or use a compromised account) with subscriber-level access. They can then exploit a weakness in a WP Statistics shortcode to launch a SQL injection attack. This allows them to, for example, create an admin-level user and sign in to your website as an admin.

 

این آسیب پذیری به هیچکس اجازه ساخت یک اکانت با سطح دسترسی admin  نمیدهد که به اشتباه در وبلاگ نوشته شده “این آسیب پذیری اجازه ساخت یک اکانت با سطح دسترسی ادمین برای ورود به پنل سایت را میدهد ” که کاملا اشتباه است و بیشتر وبسایت ها خبری مبنی بر خبر بین المللی برای این آسیب پذیر منتشر کردند که جای تعجب دارد!

حتما بخوانید  اتصال به درگاه پرداخت paypal در php

خب این مورد زیاد پیچیده نیست بنابراین خط کد هایی که به این باگ مربوط است را برای شما آوردم :

 

حتما بخوانید  ویرایش درون خطی با AJAX و PHP

در کد بالا مقدار متغیر $search_query در دستورات مختلف sql  بدون هیچگونه پاکسازی (sanitize) استفاده شده است . مهمترین قسمت کد دستور SELECT است که اجازه خواندن اطلاعات دیتابیس را برایمان فراهم می کند .دستورات بالا به ما اجازه اضافه کردن هیچگونه اطلاعات یا اضافه کردن کاربر با دسترسی ادمین را نمی دهد (نیاز به دستور INSERT  است) . کاری که با این باگ می توانید انجام دهید فقط خواندن اطلاعات داخل دیتابیس به صورت کند(!!) است . که بیشتر برای سایت های رو به معمول استفاده خاصی ندارد (مگر اینکه تارگت خاصی برای دامپ کردن اطلاعات کاربران داشته باشید).

 

حالا دوستان دیگری را من در فروم های مختلف دیدم که با این توچیه که می شود با;  یک دستور دیگر مثل insert  داخل پیلود حمله را پیش برد که باز هم اشتباه است! دلیلش هم میتوانید با بررسی متد query  و یک دستوری بودن آن پیدا کنید . درصورتی روش بالا جوابگو هست که بتونید stacked queries هارو داشته باشید !!

stacked queries چیست ؟

این قابلیت به نفوذگر اجازه به پایان رساندن دستور اصلی sql خود اسکریپت را می دهد که ممکن هست باعث اجرا شدن دستوراتی مثل delete , drop و truncate  برای پاک کردن کل اطلاعات دیتابیس بشود.

موفق باشید

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

دیدگاه کاربران

avatar

مطالب زیر را حتما بخوانید

    دانلود رایگان (هدیه ویژه)

    کتاب آموزش زبان برنامه نویسی PHP را دانلود و همین امروز یادگیری را شروع کن و به جمع برنامه نویسان ملحق شو ;)

    دانلود رایگان کتاب

    سورس فروشگاهی دیجی کالا

    بخش کاربران

    هنوز عضو نیستید ؟ کلیک کنید

    مجوزهای ما

    logo-samandehi

    دانلود کتاب

    عضویت رایگان خبرنامه

    تخفیف 150 هزار تومانی برای سورس فروشگاهی دیجی کالا تا پایان خردادماه - کد تخفیف : np150
    ثانیه
    دقیقه
    ساعت
    روز
    خرید محصول