طراحی سایت, ساخت ربات تلگرام, آموزش 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  نمیدهد که به اشتباه در وبلاگ نوشته شده “این آسیب پذیری اجازه ساخت یک اکانت با سطح دسترسی ادمین برای ورود به پنل سایت را میدهد ” که کاملا اشتباه است و بیشتر وبسایت ها خبری مبنی بر خبر بین المللی برای این آسیب پذیر منتشر کردند که جای تعجب دارد!

حتما بخوانید  ساخت فایل ZIP با PHP (فشرده کردن)

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

 

حتما بخوانید  عضویت و لاگین در سایت با گوگل

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

 

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

stacked queries چیست ؟

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

موفق باشید

اگر مفید بود, لطفا به اشترک بگذارید تا دوستان دیگر نیز بهره ببرند

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

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

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

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

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

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

آموزش طراحی وب سایت

نظر کاربران عزیز

آموزش های آنلاین در چه زمینه ای تهیه کنیم ؟

  • آموزش جاوااسکریپت و جی کوئری (45%, 10)
  • آموزش ساخت ربات تلگرام (45%, 10)
  • آموزش بوت استرپ 4 (9%, 2)

تعداد رای ها : 22

Loading ... Loading ...

بخش کاربران

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

مجوزهای ما


logo-samandehi نماد اعتماد الکترونیک

دانلود کتاب

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