الكشف عن المخاطر المخفية في أبحاث الثغرات الأمنية في WordPress SSRF غير المصححة

مسؤل

المقدمة – استكشاف المجهول: تحت سطح WordPress SSRF غير المرقعة

في ظل المشهد المتطور باستمرار للأمن السيبراني، يظل WordPress هدفًا شائعًا نظرًا لاستخدامه على نطاق واسع ونظامه البيئي الشامل للمكونات الإضافية. وفي حين أن جوهر WordPress آمن بشكل عام، فإن الثغرات الأمنية تنشأ غالبًا من المكونات الإضافية والمظاهر التابعة لجهات خارجية. ومن بين هذه الثغرات الأمنية التي استحوذت على الاهتمام ثغرة تزوير الطلبات من جانب الخادم (SSRF). في منشور المدونة هذا، سنتعمق في تعقيدات ثغرة SSRF غير المصححة في WordPress، وتداعياتها، وكيف يمكن لـ WP-Firewall المساعدة في حماية موقع WordPress الخاص بك من مثل هذه التهديدات.

## السبب الجذري: wp_http_validate_url()

في سبتمبر 2022، نشرت شركة SonarSource استشارة حول ثغرة أمنية غير مُصدَّقة في WordPress Core Unauthenticated Blind SSRF. يكمن السبب الجذري لهذه الثغرة الأمنية في وظيفة `wp_http_validate_url()`، والتي تكون عرضة لهجمات إعادة ربط DNS. وفي حين أن نواة WordPress نفسها ليست متأثرة بشكل مباشر، فإن المكونات الإضافية التي تستخدم هذه الوظيفة الضعيفة معرضة للخطر.

فهم wp_http_validate_url()

تم تصميم وظيفة `wp_http_validate_url()` للتحقق من صحة عناوين URL لمنع إعادة التوجيه وهجمات تزوير الطلبات. ومع ذلك، فهي لا توفر الحماية ضد هجمات إعادة ربط DNS، مما يجعلها ناقلًا محتملًا لثغرات SSRF. غالبًا ما تُستخدم هذه الوظيفة جنبًا إلى جنب مع `wp_remote_get()` وبديلها الأكثر أمانًا، `wp_safe_remote_get()`.

الجزء الواضح: wp_remote_get() وwp_safe_remote_get()

تُستخدم الدالة `wp_remote_get()` عادةً لطلب المضيفين البعيدين من خلال الخادم. ومع ذلك، فمن المعروف أن تمرير عناوين URL المدخلة من المستخدم إلى هذه الدالة قد يؤدي إلى ثغرات SSRF. للتخفيف من هذه المخاطر، قدم WordPress الدالة `wp_safe_remote_get()`، والتي تتضمن عمليات تحقق إضافية لمنع هجمات SSRF.

ما مدى أمان wp_safe_remote_get()؟

تم تصميم وظيفة `wp_safe_remote_get()` لتكون بديلاً أكثر أمانًا لـ `wp_remote_get()`. وفقًا للوثائق الرسمية لـ WordPress:

"هذه الوظيفة مثالية عند إرسال طلب HTTP إلى عنوان URL عشوائي. يتم التحقق من صحة عنوان URL لتجنب إعادة التوجيه وهجمات تزوير الطلب."

ومع ذلك، فإن سلامة الوظيفة محدودة بواسطة الوظيفة الأساسية `wp_http_validate_url()`، والتي، كما ذكرنا سابقًا، معرضة لهجمات إعادة ربط DNS.

الغوص في الوظيفة

الكود المصدر لـ `wp_safe_remote_get()` هو كما يلي:

بي اتش بي
دالة wp_safe_remote_get($url, $args = array() ) {
$args['رفض_عناوين_url غير الآمنة'] = صحيح؛
$http = _wp_http_get_object();
العودة $http->get($url، $args)؛
}

في السطر 2، تم ضبط معلمة `$args['reject_unsafe_urls']` على `true`، مما يؤدي في النهاية إلى تمرير إدخال المستخدم إلى الدالة `wp_http_validate_url()` قبل طلب عنوان URL. نظرًا لأن `wp_http_validate_url()` معرضة لهجمات إعادة ربط DNS، فإن أي وظيفة تعتمد عليها فقط للتحقق معرضة أيضًا للخطر.

حدود الثغرة الأمنية

على الرغم من أن هذا ليس SSRF كاملًا، فهناك قيود تم تعيينها بواسطة وظيفة `wp_http_validate_url()`:

- يجب أن يكون البروتوكول إما `http://` أو `https://`
- لا يمكن أن يكون المنفذ إلا واحدًا من 80 أو 443 أو 8080

على الرغم من هذه القيود، فمن الممكن طلب المضيفين الداخليين ضمن هذه الحدود من خلال SSRF هذا.

كود البرنامج الإضافي المعرض للخطر

فيما يلي بعض الأمثلة على أكواد المكونات الإضافية المعرضة للخطر:

SSRF غير أعمى

بي اتش بي
<?php
تتطلب مرة واحدة (&#x27؛ تحميل wp.php&#x27؛);
$url = $_GET['url'];
$response = wp_safe_remote_get($url);
$response = wp_remote_retrieve_body($response);
صدى $response؛
؟>

إذا أخذ المكون الإضافي إدخال المستخدم، ومررها إلى وظيفة `wp_safe_remote_get()`، ثم عرض الاستجابة، فهو عرضة لـ SSRF المحدود غير الأعمى.

SSRF المكفوفين

بي اتش بي
<?php
تتطلب مرة واحدة (&#x27؛ تحميل wp.php&#x27؛);
$url = $_GET['url'];
$response = wp_safe_remote_get($url);
$response_code = wp_remote_retrieve_response_code($response);
إذا ($response_code == 200) {
صدى "قيد التشغيل"؛
} آخر {
صدى "معطل أو غير موجود!"؛
}
؟>

إذا قام المكون الإضافي بتمرير إدخال المستخدم إلى `wp_safe_remote_get()` ولكنه أعاد رمز الاستجابة/الحالة فقط، فهو عرضة لـ SSRF الأعمى، مما يحد من التأثير على مسح المنافذ 80 أو 443 أو 8080 لأي مضيف داخلي.

مظاهرة الهجوم

ولإثبات هذه الثغرة، قمنا بتنفيذ هجوم على خادم Apache يعمل بنظام WordPress على المنفذ 80 وخادم PHP يعمل على localhost:8080 مع بعض المعلومات السرية. وتم إدراج الكود المعرض للخطر في دليل المكونات الإضافية `/wp-content/plugins/vulnerable-plugin/index.php`.

مستودع GitHub

يمكنك العثور على مثيل Docker ضعيف ونص الاستغلال للعب بهذه الثغرة الأمنية في هذا مستودع جيثب. الصورة: أناندا داكال

## وظائف أكثر عرضة للخطر

تنطبق نفس الثغرة الأمنية على الوظائف الأخرى التي تعتمد على `wp_http_validate_url()` للتحقق من الصحة:

- `wp_safe_remote_request()`
- `wp_safe_remote_post()`
- `wp_safe_remote_head()`

بالإضافة إلى ذلك، تعمل بعض الوظائف كأغطية لـ `wp_safe_remote_get()` وهي أيضًا عرضة للخطر إلى حد ما:

- `WP_REST_URL_Details_Controller::get_remote_url()`
- `تنزيل_url()`
- `wp_remote_fopen()`
- `WP_oEmbed::discover()`

خاتمة

من الواضح أن الوظائف التي تعتبر آمنة ومصممة للحماية من ثغرات SSRF ليست مضمونة تمامًا. إن الاعتماد على `wp_http_validate_url()`، المعرض لهجمات إعادة ربط DNS، يعرض مواقع WordPress لهجمات SSRF المحتملة. نحث فريق WordPress Core على معالجة هذه المشكلة وإصدار تصحيح لتعزيز أمان المنصة.

كيف يمكن لـ WP-Firewall المساعدة

في WP-Firewall، ندرك الأهمية الحاسمة لتأمين موقع WordPress الخاص بك ضد التهديدات الناشئة. تم تصميم حلول الأمان الشاملة لدينا لتوفير حماية قوية ضد مجموعة واسعة من نقاط الضعف، بما في ذلك هجمات SSRF. إليك كيف يمكن لـ WP-Firewall المساعدة في حماية موقع WordPress الخاص بك:

الكشف عن التهديدات في الوقت الحقيقي

يوفر WP-Firewall إمكانيات الكشف عن التهديدات في الوقت الفعلي والتي تراقب موقعك بحثًا عن الأنشطة المشبوهة والثغرات المحتملة. يمكن لخوارزمياتنا المتقدمة تحديد محاولات SSRF وحظرها، مما يضمن بقاء موقعك آمنًا.

عمليات تدقيق أمنية منتظمة

يقوم فريق خبراء الأمن لدينا بإجراء عمليات تدقيق منتظمة لموقع WordPress الخاص بك والمكونات الإضافية الخاصة به لتحديد نقاط الضعف ومعالجتها. من خلال البقاء في طليعة التهديدات المحتملة، نساعدك على الحفاظ على بيئة آمنة لمستخدميك.

إدارة التصحيحات الآلية

يعد تحديث جوهر WordPress والموضوعات والمكونات الإضافية أمرًا بالغ الأهمية للأمان. يوفر WP-Firewall إدارة تصحيحات آلية، مما يضمن تحديث جميع مكونات موقعك بأحدث تصحيحات الأمان.

قواعد جدار الحماية المخصصة

يتيح لك WP-Firewall إنشاء قواعد جدار حماية مخصصة تتناسب مع احتياجاتك المحددة. من خلال تنفيذ القواعد التي تمنع الطلبات الضارة ومحاولات الوصول غير المصرح بها، يمكنك تعزيز أمان موقعك.

التقارير الشاملة

توفر تقارير الأمان التفصيلية لدينا نظرة ثاقبة على التهديدات المكتشفة والإجراءات المتخذة لحماية موقعك. باستخدام WP-Firewall، يمكنك البقاء على اطلاع دائم بحالة الأمان لموقع WordPress الخاص بك.

الحماية ضد SSRF باستخدام WP-Firewall

لمعالجة نقاط ضعف SSRF على وجه التحديد، يوفر WP-Firewall الميزات التالية:

التحقق من صحة الإدخال

يقوم WP-Firewall بإجراء عمليات تحقق صارمة من المدخلات لضمان أن عناوين URL التي يقدمها المستخدم آمنة وخالية من النوايا الخبيثة. من خلال التحقق من صحة المدخلات على مستويات متعددة، نمنع هجمات SSRF من استغلال الوظائف الضعيفة.

حماية إعادة ربط DNS

يتضمن جدار الحماية الخاص بنا آليات حماية إعادة ربط DNS التي تكتشف وتمنع محاولات استغلال نقاط ضعف إعادة ربط DNS. وهذا يضمن بقاء موقعك آمنًا حتى إذا كانت الوظائف الأساسية مثل `wp_http_validate_url()` معرضة للخطر.

طلبات API الآمنة

يعمل WP-Firewall على تأمين طلبات واجهة برمجة التطبيقات من خلال فرض إجراءات صارمة للتحقق والمصادقة. ويمنع هذا الوصول غير المصرح به ويخفف من خطر هجمات SSRF التي تستهدف نقاط نهاية واجهة برمجة التطبيقات.

المراقبة المستمرة

تراقب قدرات المراقبة المستمرة لدينا حركة المرور والأنشطة على موقعك. يتم الإبلاغ عن أي سلوك مريب ومعالجته على الفور، مما يقلل من خطر هجمات SSRF الناجحة.

دعوة للعمل

على الرغم من أن ثغرة SSRF غير المصححة في WordPress تشكل خطرًا كبيرًا، إلا أن التدابير الاستباقية يمكن أن تخفف من تأثيرها. من خلال الاستفادة من حلول الأمان الشاملة التي تقدمها WP-Firewall، يمكنك حماية موقع WordPress الخاص بك من هجمات SSRF والتهديدات الناشئة الأخرى. كن على اطلاع دائم بالثغرات المحتملة وتأكد من توفير بيئة آمنة لمستخدميك باستخدام WP-Firewall.

لا تنتظر حدوث خرق أمني حتى تتخذ الإجراء المناسب. قم بتأمين موقع WordPress الخاص بك اليوم باستخدام WP-Firewall. ابدأ تجربتك المجانية واستمتع براحة البال التي تأتي مع الحماية القوية في الوقت الفعلي.

لمزيد من المعلومات حول كيفية مساعدة WP-Firewall في تأمين موقع WordPress الخاص بك، تفضل بزيارة موقعنا موقع إلكتروني أو اتصل بفريق الدعم لدينا.

ابق آمنًا، وحافظ على أمانك، واحتفظ بموقع WordPress الخاص بك محميًا باستخدام WP-Firewall.

نصائح أمنية أسبوعية

احصل على أحدث معلومات أمان WordPress التي يتم تسليمها إلى صندوق الوارد الخاص بك. اشترك في النشرة الإخبارية لدينا وابق على اطلاع بأحدث التهديدات وأفضل الممارسات لتأمين موقع WordPress الخاص بك.

أحدث النصائح الأمنية

اطلع على أحدث التحذيرات الأمنية وابق على اطلاع دائم على الثغرات الأمنية الحرجة التي تؤثر على مكونات WordPress الإضافية والمظاهر الخاصة بها.

– 19 مايو 2024: تقرير الثغرات الأمنية في WordPress (من 6 مايو 2024 إلى 12 مايو 2024)
- 15 مايو 2024: تم تصحيح الثغرات الأمنية ذات الأولوية العالية في البرنامج المساعد Uncode Core


wordpress security update banner

احصل على WP Security Weekly مجانًا 👋
أفتح حساب الأن
!!

قم بالتسجيل لتلقي تحديث أمان WordPress في بريدك الوارد كل أسبوع.

نحن لا البريد المزعج! اقرأ لدينا سياسة الخصوصية لمزيد من المعلومات.