
إثبات مفهوم لاختطاف المحتوى باستخدام Flash وPDF وSilverlight
مُطلق بموجب رخصة AGPL (انظر LICENSE لمزيد من المعلومات).
يمكن استخدام هذا المشروع لتقديم إثبات مفهوم لما يلي:
ملاحظة: يمكن إعادة تسمية ملفات .XAP إلى أي امتداد آخر ولكن لا يمكن تحميلها عبر النطاقات (cross-domain) بعد ذلك. يبدو أن Silverlight يحدد امتداد الملف بناءً على الرابط المقدم ويتجاهله إذا لم يكن .XAP. لا يزال من الممكن استغلال ذلك إذا كان الموقع يسمح للمستخدمين باستخدام "؛" أو "/" بعد اسم الملف الفعلي لإضافة امتداد ".XAP".
ملاحظة: يمكن إعادة تسمية ملفات .XAP إلى أي امتداد آخر ولكن لا يمكن تحميلها عبر النطاقات (cross-domain) بعد ذلك. يبدو أن Silverlight يحدد امتداد الملف بناءً على الرابط المقدم ويتجاهله إذا لم يكن .XAP. لا يزال من الممكن استغلال ذلك إذا كان الموقع يسمح للمستخدمين باستخدام "؛" أو "/" بعد اسم الملف الفعلي لإضافة امتداد ".XAP".
ملاحظة: عندما يطلب Silverlight ملف .XAP عبر النطاقات، يجب أن يكون نوع المحتوى: application/x-silverlight-app.
ملاحظة: لا يمكن استخدام ملفات PDF إلا في عارض Adobe Reader (لن تعمل مع عارضات PDF المدمجة في Chrome وFirefox)
ملاحظة: قراءة المحتويات الثابتة أو البيانات المتاحة للعموم لا يمكن اعتبارها مشكلة. من المهم إزالة النتائج الإيجابية الخاطئة من نصائحك الأمنية. لاحظ أن استخدام حرف النجمة ("*") وحده في ترويسة "Access-Control-Allow-Origin" ليس مشكلة.
مثال على الاستخدام:
يجب تقييد أنواع الملفات المسموح برفعها فقط بتلك الضرورية لوظائف العمل.
يجب على التطبيق إجراء تصفية وفحص للمحتوى على أي ملفات يتم رفعها إلى الخادم. يجب فحص الملفات والتحقق منها بدقة قبل إتاحتها للمستخدمين الآخرين. في حال وجود شك، يجب التخلص من الملف.
إضافة ترويسات "Content-Disposition: Attachment" و "X-Content-Type-Options: nosniff" إلى استجابة الملفات الثابتة سيؤمن الموقع ضد هجمات اختطاف المحتوى عبر المواقع المستندة إلى Flash أو PDF. يُنصح بتنفيذ هذه الممارسة لجميع الملفات التي يحتاج المستخدمون إلى تنزيلها في جميع الوحدات التي تتعامل مع تنزيل الملفات. على الرغم من أن هذه الطريقة لا تؤمن الموقع بالكامل ضد الهجمات باستخدام Silverlight أو كائنات مماثلة، إلا أنها يمكن أن تخفف من خطر استخدام كائنات Adobe Flash وPDF، خاصةً عندما يُسمح برفع ملفات PDF.
يجب إزالة ملفات سياسات النطاقات المتقاطعة الخاصة بـ Flash/PDF (crossdomain.xml) أو Silverlight (clientaccesspolicy.xml) إذا لم تكن قيد الاستخدام ولا توجد حاجة تجارية لتواصل تطبيقات Flash أو Silverlight مع الموقع.
يجب تقييد الوصول عبر النطاقات إلى مجموعة صغيرة من النطاقات الموثوقة التي ستحتاج إلى الوصول. تُعتبر سياسة الوصول ضعيفة أو غير آمنة عند استخدام حرف بدل (wildcard) خاصةً في قيمة خاصية "uri".
يجب اعتبار أي ملف "crossdomain.xml" يُستخدم لتطبيقات Silverlight ضعيفًا لأنه لا يقبل سوى حرف البدل ("*") في خاصية النطاق (domain).
يجب تعطيل التخزين المؤقت في المتصفح لملفات crossdomain.xml وclientaccesspolicy.xml. وهذا يمكّن الموقع من تحديث الملف بسهولة أو تقييد الوصول إلى خدمات الويب إذا لزم الأمر. بمجرد فحص ملف سياسة وصول العميل، يظل ساريًا لجلسة المتصفح، لذا فإن تأثير عدم التخزين المؤقت على المستخدم النهائي ضئيل. يمكن رفع هذا كمسألة منخفضة الخطورة أو إعلامية بناءً على محتوى الموقع المستهدف وأمن وتعقيد ملف (ملفات) السياسة.
يجب مراجعة ترويسات CORS بحيث يتم تفعيلها فقط للبيانات الثابتة أو المتاحة للعموم. بخلاف ذلك، يجب أن تحتوي ترويسة "Access-Control-Allow-Origin" على العناوين المصرح بها فقط. يجب استخدام ترويسات CORS الأخرى مثل "Access-Control-Allow-Credentials" فقط عند الحاجة إليها. يجب مراجعة العناصر الموجودة داخل ترويسات CORS مثل "Access-Control-Allow-Methods" أو "Access-Control-Allow-Headers" وإزالتها إذا لم تكن مطلوبة.
ملاحظة: استخدام ترويسة "Referer" لا يمكن أن يكون حلاً لأنه من الممكن تعيين هذه الترويسة على سبيل المثال عن طريق إرسال طلب POST باستخدام Adobe Reader وPDF (انظر ملف "xfa-manual-ContentHijacking.pdf" في مجلد "objects"). تحديث: تمت معالجة تعيين ترويسة "referer" من قبل Adobe إلا إذا وجدت أيضًا تجاوزًا لها ;)
انظر صفحة المشروع لآخر تحديث/مساعدة: https://github.com/nccgroup/CrossSiteContentHijacking
Soroush Dalili (المعروف بـ @irsdl) من NCC Group
حتى رفع ملف JPG يمكن أن يؤدي إلى اختطاف البيانات عبر النطاقات (هجوم من جهة العميل)! https://soroush.secproject.com/blog/2014/05/even-uploading-a-jpg-file-can-lead-to-cross-domain-data-hijacking-client-side-attack/
ثغرات متعددة في PDF - نص وصور بجرعات مضاعفة http://insert-script.blogspot.co.at/2014/12/multiple-pdf-vulnerabilites-text-and.html
اتصالات HTTP والأمان مع Silverlight http://msdn.microsoft.com/en-gb/library/cc838250(v=vs.95).aspx
شرح ملفات الوصول عبر النطاقات وسياسات وصول العميل لـ Silverlight http://www.devtoolshed.com/explanation-cross-domain-and-client-access-policy-files-silverlight
مواصفات ملف سياسة النطاقات المتقاطعة http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html
إعداد ملف crossdomain.xml لتدفق HTTP http://www.adobe.com/devnet/adobe-media-server/articles/cross-domain-xml-for-streaming.html
استغلال CVE-2011-2461 على google.com http://blog.mindedsecurity.com/2015/03/exploiting-cve-2011-2461-on-googlecom.html