
آسیب پذیری امنیتی Zero-Day در پرستاشاپ (پرستاشاپ) اطلاعات پرداخت کاربران را در اختیار هکرها قرار می دهد. این آسیب پذیری تازه کشف شده به عنوان یکی از لاگ های امنیتی اصلی پرستاشاپ در نظر گرفته می شود که امنیت این پلتفرم را به خطر می اندازد. اگر از سیستم پرستاشاپ استفاده می کنید، باید به سرعت این باگ امنیتی را برطرف کرده و امنیت پلتفرم خود را حفظ کنید.
حمله Zero-Day در پرستاشاپ چگونه کار می کند؟ چگونه یک باگ امنیتی Zero-Day را برطرف کنم؟ همه اینها سوالاتی هستند که باید بدانید و حتی اگر از پرستاشاپ استفاده نمی کنید، باید از این نقص آگاه باشید.
پرستاشاپ چیست و کدام نسخه مشکل امنیتی دارد؟
پرستاشاپ یکی از پلتفرم های فروشگاه سازی مانند وردپرس و جوملا است که به زبان PHP توسعه یافته و به صورت رایگان در دسترس عموم قرار دارد. در حال حاضر بیش از 300000 فروشگاه آنلاین از پرستاشاپ استفاده می کنند و همه آنها در معرض این حمله امنیتی قرار گرفته اند.
نسخه های Prestashop 1.6.0.10 و جدیدتر تحت تأثیر این آسیب پذیری قرار دارند (CVE-2022-36408) قرار داده شده است و اگر شما صاحب یک فروشگاه آنلاین با پرستاشاپ هستید، باید این نقص امنیتی را برطرف کنید. نکته دیگر اینکه حمله مذکور از طریق SQL Injection انجام می شود و به مهاجمان امکان دسترسی به داده ها را می دهد. علاوه بر این، اگر از نسخه های جدیدتری استفاده می کنید که دارای ماژول هایی مانند Wishlist 2.0.0 تا 2.1.0 هستند، ممکن است در معرض خطر باشید.
وقتی سیستم مدیریت محتوای شما هک شد چه باید کرد؟ در مقاله زیر بخوانید.
بعد از هک شدن چه باید کرد؟
حمله Zero-Day چگونه در پرستاشاپ رخ می دهد؟
همانطور که گفتیم، این حمله Prestashop را از طریق تزریق SQL هدف قرار می دهد. بر اساس تحقیقات پرستاشاپ، حملات با ارسال یک درخواست POST به نقاط پایانی آسیب پذیر شروع می شود و به دنبال آن یک درخواست GET بدون هیچ پارامتری به صفحه اصلی ارسال می شود.
این یک فایل پوسته وب به نام blm ایجاد می کند[.]php در دایرکتوری ریشه ذخیره می شود. مهاجمان از این فایل پوسته وب برای ایجاد یک صفحه پرداخت جعلی استفاده می کنند. در نهایت یک درخواست GET به فایل ایجاد شده ارسال می کنند و دستورات لازم را وارد می کنند. پس از حمله، مهاجمان اثرات حمله را از بین می برند تا صاحبان مغازه متوجه حمله نشوند.
جزئیات بیشتر درباره این حمله به شرح زیر است:
- مهاجم یک درخواست POST را به نقاط پایانی یک آسیب پذیری تزریق SQL ارسال می کند.
- پس از حدود یک ثانیه، مهاجم یک درخواست GET را بدون هیچ پارامتری به صفحه اصلی ارسال می کند. با این کار یک فایل PHP به نام blm.php در دایرکتوری فروشگاه ایجاد می شود.
- سپس مهاجم یک درخواست GET را به فایل تازه ایجاد شده ارسال می کند و blm.php به او اجازه می دهد تا کد دلخواه را اجرا کند.
این حملات را می توان بر روی نسخه های قدیمی که از ماژول ها و نرم افزارهای قدیمی استفاده می کنند نیز انجام داد.
چگونه بفهمیم پرستاشاپ ما هک شده است یا خیر؟
با توجه به روش حملات، ممکن است رکوردی مشابه موارد زیر در سرور شما ثبت شود. این نمونه ای از حمله ذکر شده است که یکی از هکرها منتشر کرده است:
– [14/Jul/2022:16:20:56 +0200] “POST /modules/XXX/XXX.php HTTP/1.1” 200 82772 “-” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.14 (KHTML، مانند Gecko) نسخه/10.0.1 Safari 602.2.14”
– [14/Jul/2022:16:20:57 +0200] “GET / HTTP/1.1” 200 63011 “-” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML، مانند Gecko) Chrome/54.0.2840.98 Safari”/537.
– [14/Jul/2022:16:20:58 +0200] “POST /blm.php HTTP/1.1” 200 82696 “-” “Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0”
توجه داشته باشید که پیدا نکردن چنین گزارشی صرفاً به این دلیل نیست که وب سایت شما هک نشده است. بلکه ممکن است هکرها از روش های مختلفی استفاده کرده باشند.
آسیب پذیری در فروشگاه ساز پرستاشاپ
چگونه از حمله Zero-Day در پرستاشاپ جلوگیری کنیم؟
پرستاشاپ نسخه 17.7.8.7 را فقط برای رفع این حمله و محافظت در برابر حملات تزریقی منتشر کرد. این نسخه امن ترین نسخه پرستاشاپ در برابر حملات ذکر شده می باشد. در زیر چند راه برای جلوگیری از حملات پرستاشاپ آورده شده است:
1. آخرین نسخه پرستاشاپ را نصب کنید و ماژول ها را دائما به روز کنید
همانطور که گفتیم پرستاشاپ به سرعت نسخه جدیدی را برای جلوگیری از این حمله منتشر کرد. برای محافظت کامل از سیستم خود، به یاد داشته باشید که آخرین نسخه Prestashop را نصب کنید و مدام ماژول های خود را به روز کنید. زیرا این حمله کاملاً جدید است و ماژول های شما به زودی به روز رسانی امنیتی خود را منتشر خواهند کرد.
2. بخشی از کدهای مخرب را در پرستاشاپ حذف کنید
یکی از روشهای حمله احتمالی ذکر شده توسط پرستاشاپ، استفاده از ویژگیهای کش MySQL Smarty است. این قابلیت به طور پیشفرض غیر فعال است؛ از آنجایی که به ندرت استفاده می شود. با این حال، مهاجمان می توانند آن را از راه دور فعال کرده و به وب سایت شما حمله کنند. اگر به این ویژگی نیاز ندارید، حتما آن را غیرفعال کنید.
برای انجام این کار؛ این موارد را دنبال کنید:
- فایل config/smarty.config.inc.php را در قسمت نصب پرستاشاپ بیابید.
- خطوط 46-43 را برای پرستاشاپ 1.7 یا 43-40 را برای پرستاشاپ 1.6 حذف کنید که تابع زیر است:
نمونه ای از کدهای مخرب در پرستاشاپ
همچنین می توانید این کد را جستجو کنید:
if (Configuration::get('PS_SMARTY_CACHING_TYPE') == 'mysql') { include _PS_CLASS_DIR_.'Smarty/SmartyCacheResourceMysql.php'; $smarty->caching_type="mysql"; }
نتیجه
پرستاشاپ یکی از سیستم های ایجاد فروشگاه های آنلاین اخیرا مورد حمله هکرهای زیادی قرار گرفته است. یک حمله روز صفر که از طریق تزریق SQL انجام می شود به مهاجمان این امکان را می دهد که یک فایل جدید ایجاد کرده و دستورات خود را که معمولاً صفحات پرداخت جعلی هستند را در آن اجرا کرده و در نهایت آن را به وب سایت شما اضافه کنند.
این نقص امنیتی اخیراً کشف شد و پرستاشاپ به سرعت آن را برطرف کرد و راه حل را در یک به روز رسانی منتشر کرد. اگر از نسخه های قدیمی پرستاشاپ استفاده می کنید، حتما آن را به آخرین نسخه به روز کنید و ماژول های خود را برای رفع این مشکل به روز کنید.
با مطالعه مقاله زیر، آخرین نسخه فروشگاه اینترنتی جوملا، وردپرس و پرستاشاپ را به صورت خودکار و رایگان نصب کنید!
معرفی جوملا، وردپرس و پرستاشاپ
سوالات متداول
1. حمله روز صفر در پرستاشاپ چیست؟
یک نقص امنیتی جدید PrestaShop امکان حمله Zero-Day از طریق SQL Injection را فراهم می کند.
2. آیا پرستاشاپ ایمن است؟
بستگی دارد پرستاشاپ یک پلتفرم امن است. اما گاهی اوقات ممکن است مشکلات امنیتی پیدا کند که باید برطرف شوند.
3. چگونه حمله Zero-Day را با SQL Injection در پرستاشاپ انجام دهیم؟
- یک مهاجم یک درخواست POST برای انجام یک حمله تزریق SQL ارسال می کند.
- سپس مهاجم یک درخواست GET بدون هیچ پارامتری ارسال می کند و فایلی به نام blm.php در دایرکتوری فروشگاه ایجاد می کند.
- مهاجم فایل blm.php را سفارشی کرده است.
4. چگونه از حمله Zero-Day به پرستاشاپ جلوگیری کردن؟
- آخرین نسخه پرستاشاپ (نسخه 1.7.8.7 یا بالاتر) را نصب کنید.
- ماژول های خود را به روز کنید
- MySQL Smarty غیر فعال کردن
{ “@context”: “https://schema.org”، “@type”: “FAQPage”، “mainEntity”: [{
“@type”: “Question”,
“name”: “حمله Zero-Day در پرستاشاپ چیست؟”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “باگ امنیتی جدید پرستاشاپ حمله Zero-Day را ازطریق SQL Injection امکانپذیر میکند.”
}
},{
“@type”: “Question”,
“name”: “آیا پرستاشاپ امن است؟”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “بستگی دارد. پرستاشاپ پلتفرمی امن است؛ اما احتمال دارد گاهی مشکلات امنیتی پیدا کند که باید رفع شود.”
}
},{
“@type”: “Question”,
“name”: “حمله Zero-Day با SQL Injection در پرستاشاپ چگونه انجام میشود؟”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “مهاجم درخواست POST را برای انجام حمله Injection SQL ارسال میکند.
پسازآن، مهاجم درخواست GET را بدون هیچ پارامتری ارسال و فایلی به نام blm.php در دایرکتوری فروشگاه ایجاد میکند.
مهاجم فایل blm.php را شخصیسازی میکند.”
}
},{
“@type”: “Question”,
“name”: “چگونه از حمله Zero-Day در پرستاشاپ جلوگیری کنیم؟”,
“acceptedAnswer”: {
“@type”: “Answer”,
“text”: “جدیدترین نسخه پرستاشاپ (نسخه 1.7.8.7 یا جدیدتر) را نصب کنید.
ماژولهای خود را بهروررسانی کنید.
MySQL Smarty را غیرفعال کنید.”
}
}]
}
منبع:
پرستاشاپ
The post استفاده از حفره امنیتی Zero-Day در وب سایت های پرستاشاپ اولین بار در پارسپک پدیدار شد. به نظر می رسد.