
هجوم XSS على Atlassian Jira عبر Server Side Request Forgery (SSRF).
SSRF & XSS
https://jira.you.com//plugins/servlet/oauth/users/icon-uri?consumerUri=http://www.google.co.uk
يسمح IconUriServlet الخاص بإضافة Atlassian OAuth Plugin، من الإصدار 1.3.0 حتى ما قبل الإصدار 1.9.12، ومن الإصدار 2.0.0 حتى ما قبل الإصدار 2.0.4، للمهاجمين عن بُعد بالوصول إلى محتوى موارد الشبكة الداخلية و/أو تنفيذ هجوم XSS عبر تزوير الطلبات من جانب الخادم (SSRF).
وفقًا لـ Atlassian Jira، فإن الإصدارات التالية معرضة للخطر:
في هجوم تزوير الطلبات من جانب الخادم (SSRF)، يمكن للمهاجم إساءة استخدام وظيفة على الخادم لقراءة الموارد الداخلية أو تحديثها. يمكن للمهاجم توفير عنوان URL أو تعديله، والذي سيقرأه الكود المُشغَّل على الخادم أو يرسل البيانات إليه، ومن خلال اختيار عناوين URL بعناية، قد يتمكن المهاجم من قراءة إعدادات الخادم مثل بيانات AWS الوصفية، أو الاتصال بالخدمات الداخلية مثل قواعد البيانات التي تعمل عبر HTTP، أو تنفيذ طلبات POST تجاه الخدمات الداخلية التي ليس من المقصود كشفها.
قد يحتوي التطبيق المستهدف على وظيفة لاستيراد البيانات من عنوان URL، أو نشر البيانات إلى عنوان URL، أو قراءة البيانات من عنوان URL يمكن العبث به. يعدّل المهاجم الاستدعاءات لهذه الوظيفة من خلال توفير عنوان URL مختلف تمامًا أو عن طريق التلاعب بكيفية إنشاء عناوين URL (اجتياز المسار path traversal وما إلى ذلك).
عندما يصل الطلب المُعدَّل إلى الخادم، يلتقط الكود من جانب الخادم عنوان URL المُعدَّل ويحاول قراءة البيانات منه. وباختيار عناوين URL المستهدفة، قد يتمكن المهاجم من قراءة البيانات من الخدمات غير المكشوفة مباشرة على الإنترنت:
البيانات الوصفية لخوادم السحابة - توفر الخدمات السحابية مثل AWS واجهة REST على http://169.254.169.254/latest/meta-data/ حيث يمكن استخراج إعدادات مهمة وأحيانًا حتى مفاتيح المصادقة
واجهات HTTP لقواعد البيانات - توفر قواعد بيانات NoSQL مثل MongoDB واجهات REST على منافذ HTTP. Docker وKubernetes - إذا كانت المنافذ المحلية مكشوفة داخليًا، يمكن للمهاجم إنشاء/حذف الـ pods والحاويات واسترجاع أسرار أخرى.
إذا كان من المتوقع أن تكون قاعدة البيانات متاحة داخليًا فقط، فقد تكون المصادقة معطلة ويمكن للمهاجم استخراج البيانات واجهات REST الداخلية
الملفات - قد يتمكن المهاجم من قراءة الملفات باستخدام عناوين URI من نوع file:// قد يستخدم المهاجم أيضًا هذه الوظيفة لاستيراد بيانات غير موثوقة إلى كود يتوقع قراءة البيانات من مصادر موثوقة فقط، وبالتالي التحايل على التحقق من صحة الإدخال.