ثغرة SQL Injection في إضافة Email Subscribers by Icegram Express كيفية الاستغلال والحماية
ثغرة SQL Injection |
هل سمعت عن مشكلة الثغرات في إضافات الووردبريس؟ خليني أحكي لك عن ثغرة صارت في إضافة معروفة اسمها Email Subscribers by Icegram Express. هاي الإضافة اللي أغلبنا بنستخدمها للتسويق عبر الإيميل، النشرات الإخبارية، وحتى الأتمتة في الووردبريس وWooCommerce، كانت فيها ثغرة خطيرة نوعًا ما. الثغرة هاي بتسمح للمهاجمين يسحبوا معلومات حساسة من قاعدة البيانات بكل سهولة، وبدون حتى ما يحتاجوا يكونوا مسجلين أو موثقين في الموقع!
شو هي الثغرة وكيف بتصير؟
بالبساطة، الثغرة هاي من نوع SQL Injection، واللي بتصير بسبب عدم التعامل بشكل صحيح مع المدخلات اللي بيحطها المستخدمين. يعني، لو في واحد شاطر يعرف شوية برمجة، بيقدر يدخل أوامر برمجية مع المدخلات اللي بيحطها بالإضافة، ويقدر يغيّر بالاستعلامات اللي بتروح لقاعدة البيانات.
شو يعني؟ يعني لو واحد بده يستغل الثغرة هاي، بيقدر يدخل أوامر إضافية على الاستعلامات اللي بتتعامل مع قاعدة البيانات، وهيك يقدر يسحب معلومات حساسة، مثل بيانات المستخدمين، أو حتى يتحكم بالموقع بطريقة غير شرعية.
طيب، كيف ممكن يستغلوا الثغرة؟
المشكلة كانت في كود برمجي معين داخل الإضافة، وتحديدًا في جزء اسمه IG_ES_Subscribers_Query
بالدالة اللي اسمها run
. لما تكون المدخلات ما فيها أي حماية أو فلترة، بتصير عرضة لأي شخص بده يدخل استعلامات إضافية عشان يلعب بقاعدة البيانات.
كيف ممكن تكتشف إذا موقعك معرض للخطر؟
في أدوات مثل FOFA و PublicWWW بتقدر تستخدمها عشان تدور على المواقع اللي عندها هاي الإضافة وتشيك إذا معرضة للهجوم. وهاي بعض الاستعلامات اللي ممكن تستخدمها:
- FOFA:
body="/wp-content/plugins/email-subscribers/"
- PublicWWW:
"/wp-content/plugins/email-subscribers/"
مثال على طريقة الاستغلال
خليني أحكي لك كيف ممكن واحد يستغل الثغرة هاي. بيقدر يبعت طلب HTTP باستخدام أدوات زي Burp Suite ويدخل أوامر داخل الطلب زي هيك:
POST /wp-admin/admin-post.php HTTP/1.1
Host: {{اسم الموقع}}
Content-Type: application/x-www-form-urlencoded
page=es_subscribers&is_ajax=1&action=_sent&advanced_filter[conditions][0][0][field]=status=99924)))union(select(sleep(4)))--+&advanced_filter[conditions][0][0][operator]==&advanced_filter[conditions][0][0][value]=1111
طيب، شو الحل؟
ما تخاف! الحل بسيط. كل اللي عليك تعمله هو التالي:
- حدث الإضافة فورًا: الإصدارات القديمة كانت فيها الثغرة، لذلك لازم تحدث لإصدار 5.7.15 أو الأحدث (مثل 5.7.19).
- تفعيل التحديثات التلقائية: إذا كنت تستخدم خدمة Patchstack، فيك تفعل التحديثات التلقائية عشان أي إضافة فيها ثغرات تتحدث لحالها.
- استخدم WAF أو WAAP: هاي حلول حماية متقدمة بتضيف طبقة حماية إضافية، حتى لو كانت الثغرة جديدة وما في إلها حل مباشر، بتقدر هاي الأدوات تتعرف على أنماط الهجمات وتوقفها قبل ما توصل لموقعك.
بتنفيذ هاي الخطوات، بتقدر تحمي موقعك وتضمن إنه ما يكون معرض للهجوم من هاي الثغرة. الأفضل إنك تتأكد دايمًا من تحديث إضافات الووردبريس عندك أول بأول، عشان تحافظ على أمان موقعك.