عيوب التخزين المؤقت والترويسات HTTP Caching
صفحة خاصة تخزن عاما وتسميم الكاش عبر ترويسة غير مضمومة وخداع الكاش ليخزن صفحة خاصة تحت مسار ثابت
- المسار
- أمن الويب
- الوقت المتوقع
- 22 د
- المستوى
- متوسط
قبل هذا الدرس
بين المتصفح والخادم تجلس كاشات مشتركة شبكات توصيل ووكلاء تخزن الردود لتخدمها أسرع للشخص التالي وهذه المشاركة هي الخطر فإذا خزن الرد الخطأ تحت المفتاح الخطأ أو خدم للمستخدم الخطأ تحول خطأ صغير في ترويسة إلى تسريب يصيب الجميع
ما هي الثغرة؟
- صفحة خاصة تخزن عاما صفحة لكل مستخدم تحمل Cache-Control public فيخزن الكاش المشترك رد مستخدم ويسلمه للتالي
- تسميم الكاش صفحة تعكس إدخالا غير مضموم ترويسة مثل X-Forwarded-Host لكن الكاش مفتاحه المسار فقط فطلب خبيث واحد يسمم النسخة المخزنة التي يتلقاها كل زائر
- خداع الكاش صفحة خاصة no-store لكن الكاش يخزن ما ينتهي بـ css والتوجيه الفضفاض يرجع الصفحة الخاصة لـ account يتبعه x.css فتخزن بيانات الضحية تحت مسار يبدو ثابتا يقرأه المهاجم
لماذا تحدث؟
الكاش والتطبيق يختلفان على ما يعتمد عليه الرد وهل هو خاص الكاش يفتح على العنوان والرد يتغير حسب ترويسة الكاش يثق بلاحقة الملف والتطبيق وسمه no-store وكل فجوة خفية حتى يجلس كاش مشترك في المنتصف
كيف تتوقف؟
علم الردود الخاصة بـ Cache-Control private و no-store ولا تعكس ترويسة غير موثوقة في رد قابل للتخزين وضم كل ما يؤثر في الرد في مفتاح الكاش واجعل الكاش يحترم ترويسات التخزين بدل التخمين من المسار وضيق التوجيه حتى لا تصل لاحقة مصممة لمعالج حساس
اللابات الثلاثة أدناه تمشي هذا اقرأ صفحة خاصة مخزنة عاما وسمم صفحة عبر ترويسة واخدع الكاش ليخزن صفحة خاصة
اللابات
صفحة خاصة في كاش عام
محلولسهللاب في المتصفح
اجلب بيانات admin الخاصة من الكاش المشترك
ادخل اللابمقفلتسميم الكاش
محلولمتوسطلاب في المتصفح
سمم الكاش فتتلقى الضحية سكربتا من موقعك
ادخل اللابمقفلخداع الكاش
محلولصعبلاب في المتصفح
اخدع الكاش ليخزن بيانات admin تحت مسار ثابت ثم اقرأها
ادخل اللابمقفل
