افزونه WP Job Portal با بیشتر از ۸۰۰۰ نصب فعال ، در برابر تزریق SQL غیر احراز هویت شده و آسیب پذیری خواندن произвольный فایل آسیب پذیر است. این آسیب پذیری ها می توانند امنیت وب سایت های وردپرسی را به خطر بیندازند و اطلاعات حساس را در معرض خطر قرار دهند.

آسیب پذیری های بحرانی وصله شده در افزونه WP Job Portal

به روزرسانی افزونه ها یکی از مهم ترین اقداماتی است که مدیران وب سایت ها برای حفظ امنیت باید انجام دهند. افزونه WP Job Portal نیز از این قاعده مستثنی نیست و به روزرسانی آن به آخرین نسخه برای جلوگیری از سوءاستفاده از آسیب پذیری های موجود لازمه.

در این مقاله، به بررسی دو آسیب پذیری مهم که در نسخه جدید افزونه WP Job Portal وصله شده اند ، می پردازیم: تزریق SQL غیر احراز هویت شده و آسیب پذیری خواندن произвольный فایل. همچنین، نحوه عملکرد این آسیب پذیری ها و راهکارهای مقابله با اون ها رو بررسی خواهیم کرد.

تزریق SQL غیر احراز هویت شده (Unauthenticated SQL Injection)

تزریق SQL یکی از رایج ترین و خطرناک ترین آسیب پذیری های وب است. این آسیب پذیری به مهاجم اجازه می دهد تا با تزریق کد SQL مخرب به ورودی های وب سایت، به پایگاه داده دسترسی پیدا کند و اطلاعات حساس را سرقت کند ، تغییر دهد یا حذف کند. در افزونه WP Job Portal ، این آسیب پذیری به شکل غیر احراز هویت شده وجود داشت، به این معنی که هر کسی بدون نیاز به ورود به سیستم می توانست از آن سوءاستفاده کند.

این آسیب پذیری در تابع validateFormData وجود داشت. این تابع مقدار $category را از ورودی کاربر می گرفت و آن را با دستور SQL متغیر $inquery ترکیب می کرد. سپس، این متغیر به $query متصل شده و به عنوان یک دستور SQL اجرا می شد که باعث SQLi می شد.

برای جلوگیری از این نوع حملات، توسعه دهندگان باید از روش های امن کدنویسی استفاده کنند و ورودی های کاربر را به دقت اعتبارسنجی کنند. استفاده از prepared statements و parameterized queries می تواند از تزریق SQL جلوگیری کند.

آسیب پذیری دانلود произвольный فایل (Unauthenticated Arbitrary File Download)

آسیب پذیری دانلود произвольный فایل به مهاجم اجازه می دهد تا هر فایلی را از سرور دانلود کند. این آسیب پذیری می تواند بسیار خطرناک باشد ، زیرا مهاجم می تواند به فایل های پیکربندی، فایل های پایگاه داده و سایر فایل های حساس دسترسی پیدا کند. در افزونه WP Job Portal، این آسیب پذیری در تابع downloadCustomUploadedFile وجود داشت.

این تابع پارامترها را می گرفت و مستقیماً متغیر $file_name را به $file متصل می کرد و فایل را بازیابی و خروجی می داد. با ردیابی تابع downloadCustomUploadedFile، به تابع downloadcustomfile می رسیم. تابع downloadcustomfile، مقدار $file_name را از کاربر می گیرد و آن را به downloadCustomUploadedFile منتقل می کند. همانطور که در بالا گفته شد، مقدار مستقیماً متصل و بازیابی می شود، به این معنی که می توان با پیمایش مسیر به هر فایلی دسترسی داشت.

برای جلوگیری از این نوع حملات، توسعه دهندگان باید دسترسی به فایل های حساس را محدود کنند و از روش های امن کدنویسی استفاده کنند. اعتبارسنجی نام فایل و استفاده از لیست سفید (whitelist) می تواند از دانلود произвольный فایل جلوگیری کند.

وصله آسیب پذیری ها (The Patch)

در نسخه ۲.۳.۳، فروشنده آسیب پذیری تزریق SQL را با اطمینان از اینکه $category عددی است و افزودن بررسی esc_sql() اضافی روی متغیر، وصله کرد.

برای آسیب پذیری آپلود произвольный فایل ، آن ها این مشکل را با افزودن بررسی نام فایل با تابع wpJP_clean_file_path وصله کردند.

حذف تمام موارد ./ و .. اساساً از انجام پیمایش مسیر توسط مهاجم برای دسترسی به یک فایل произвольный جلوگیری می کند.

اهمیت به روزرسانی افزونه ها و قالب ها

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

علاوه بر وصله های امنیتی ، به روزرسانی افزونه ها و قالب ها می تواند شامل بهتر شدن کارایی، رفع اشکالات و اضافه شدن ویژگی های جدید باشد. بنابراین، به روزرسانی افزونه ها و قالب ها نه تنها برای حفظ امنیت لازمه، بلکه می تواند تجربه کاربری را نیز بهبود بخشد.

نقش فایروال وب سایت (WAF) در تامین امنیت

فایروال وب سایت (WAF) یک لایه امنیتی است که بین وب سایت و اینترنت قرار می گیرد و ترافیک ورودی و خروجی را بررسی می کند. WAF می تواند حملات مختلفی را شناسایی و مسدود کند، از جمله حملات تزریق SQL، حملات XSS و حملات DDoS. استفاده از WAF می تواند به طور قابل توجهی امنیت وب سایت را افزایش دهد.

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

نتیجه گیری

حفظ امنیت وب سایت های وردپرسی نیازمند توجه به نکات مختلفی است. به روزرسانی منظم افزونه ها و قالب ها ، استفاده از فایروال وب سایت (WAF) و رعایت اصول امن کدنویسی از جمله مهم ترین اقداماتی هستند که مدیران وب سایت ها باید انجام دهند. با رعایت این نکات ، می توان امنیت وب سایت را به طور قابل توجهی افزایش داد و از اطلاعات حساس محافظت کرد.

توسعه دهندگان باید اطمینان حاصل کنند که تمام پرس و جوهای SQL درست با عبارات آماده هنگام پردازش با ورودی های کاربر استفاده می شوند. هر زمان که صحبت از دانلود یا بازیابی فایل ها می شود ، باید اعتبارسنجی مناسب نام فایل وجود داشته باشد تا اطمینان حاصل شود که هیچ پیمایش مسیری وجود ندارد که باعث دسترسی произвольный فایل شود.

منابع مفید

برای کسب اطلاعات بیشتر در مورد امنیت وب سایت های وردپرسی ، می توانید از منابع زیر استفاده کنید: