جميع المواد الخاصة بمحادثة Gareth Heyes في Black Hat: CSS: القنبلة داخل بريدك الوارد.

مرحباً بك في هذا المستودع. يحتوي هذا المستودع على جميع المواد الخاصة بمحاضرتي "CSS: القنبلة داخل صندوق الوارد الخاص بك". يحتوي هذا المستودع على كود إثبات المفهوم، وحالات الاختبار، والمواد الداعمة التي تم تحديدها أو تطويرها أو جمعها لأغراض البحث الأمني المشروع والتحليل والاختبار الدفاعي فقط. يمكنك القراءة عن هذا البحث على: الورقة البحثية
يحتوي هذا الدليل على إثبات المفهوم لهجوم CSS التوصيل المباشر على FastMail. يعرض مقتطف الشيفرة الأول المتجه كنص عادي دون ترميز. أما المثال الثاني فهو الحمولة المرمّزة، وتتحور عند استخدام CSSOM وإعادة قراءة كود CSS.
يحتوي هذا الدليل على إثبات المفهوم الذي يوضح الهجوم على Medium باستخدام Firefox. يقوم بتوليد CSS لسرقة الجزء الأول والأخير والوسطي من الرمز (token). ثم ينسخه إلى الحافظة عندما ينقر الضحية على الزر. لقد أدرجت ملفات PHP اللازمة لاسترجاع أجزاء الرمز. يجب أن تكون الملفات النصية قابلة للكتابة على الخادم، ويجب استخدام ملف .htaccess لاستخراج المعلومات من المسار.
يوضح هذا الدليل تقنية استخراج الرموز لسرقة العقد النصية عندما يقوم CSP بحظر الموارد الخارجية. لقد أدرجت معلومات التصحيح (debugging information) لتوضيح كيفية عملها.
يوضح هذا كيفية سرقة ضغطات المفاتيح باستخدام HTML خالص. أستخدم أحرف يونيكود صغيرة لإخفاء الحروف. يتم استخدام marquee لقص عنصر select بحيث لا يبدو وكأنه كذلك.
يعرض إثبات المفهوم هذا المطالبة التي استخدمتها لإقناع Atlas بجلب البيانات من الصفحة واستخراجها عبر عنوان URL عن طريق فتح التبويبات. ستلاحظ أن كل عنوان URL موجود في المطالبة؛ لأن Atlas يبدو أنه يقارن نص المطالبة بعناوين URL التي يفتحها ليقرر ما إذا كان سيعرض مطالبة تأكيد.
يحتوي هذا على إثبات المفهوم الذي استخدمته لتشويه Outlook. "data-tabster" هي سمة HTML المطلوبة لكي تقوم المكتبة بإلحاق أداة CSS بالعقدة عند قراءة البريد الإلكتروني.
هذا هو الاستغلال على Outlook الذي عرضته في محاضرتي. يقوم بانتحال شاشة تسجيل الدخول، ويستخدم خدعة الحركة (animation) لجعلها في الوقت الفعلي على Firefox، كما أن التسمية (label) تجعل حقل الإدخال المزيف قابلاً للنقر، مما يحاكي سلوك شاشة تسجيل الدخول.
يوضح هذا كيف استخدمت التسميات (labels) للتحكم في واجهة المستخدم في Outlook لتثبيت رسالة المهاجم في صندوق وارد الضحية.
بشكل لا يصدق، تمكنت من بناء مسجل ضغطات مفاتيح يعمل بالكامل في CSS منقّى (sanitized). يستخدم هذا أداة CSS للاستيلاء على الشاشة. لكن له قيوداً لأنك لا تملك تحكماً كاملاً في CSS. راجع "مسجل ضغطات المفاتيح في Outlook على Firefox" للحصول على النسخة الكاملة التي تنتحل شاشة تسجيل دخول Outlook بالكامل.
يعرض إثبات المفهوم هذا كيفية استخدام Interest Invokers لإنشاء مسجل ضغطات مفاتيح في الوقت الفعلي في Chrome.
أنشأت أداة بسيطة لاستخراج الرموز عبر CSS أثناء اختبار Gitlab. يمكنك استخدامها إذا كان لديك حقن أنماط (style injection) وكانت استيرادات CSS التكرارية مسموحة.
أتاح لي Shazzer اكتشاف تجاوزات وسيط الصور (image proxy) والعديد من الحالات الشاذة والسلوكيات في CSS. لقد جعلت المتجهات الخاصة بي متاحة للعموم لكي تطلع على كيفية اكتشافها. يمكنك عرض المجموعة الكاملة من المتجهات عبر عنوان URL التالي:
ملاحظة:ستُجعل المتجهات متاحة للعموم بعد محاضرتي.
استخدمت Hackvertor لبناء تحورات CSS. تم ذلك باستخدام وسم cssEscape. كما يملك Hackvertor ميزة "Copy as HTML" التي تنشئ كتلة (blob) من مدخلاتك وتضعها في الحافظة. استُخدمت هذه الميزة لفحص المواقع بحثاً عن حقن CSS من اللصق.
لا تنسَ الاطلاع على الورقة البحثية!