
أداة Go وقالب Nuclei لاختبار بحث James Kettle (CVE-2025-32094) "HTTP/1.1 must die: the desync endgame"
يحتوي هذا المستودع على أدوات أمنية دفاعية لكشف ثغرات تهريب الطلبات (Desync) في HTTP/1، استناداً إلى الأبحاث الرائدة التي أجراها جيمس كيتل من PortSwigger.
هذا العمل مستوحى مباشرة من المصادر التالية وينفّذ تقنياتها:
أنماط الهجوم والتقنيات وطرق الكشف المطبَّقة في هذه الأدوات مبنية على العمل الريادي لجيمس كيتل، الذي كشف عن عيوب أساسية في تطبيقات بروتوكول HTTP/1.1 لدى كبار مزوّدي البنية التحتية للويب.
أظهر بحث جيمس كيتل ثغرات تؤثر على:
إن تعريفات حدود الطلبات الغامضة في HTTP/1.1 تُنشئ ما أسماه جيمس كيتل "غموضاً متطرفاً" حول أين تبدأ الطلبات وأين تنتهي. يؤدي هذا إلى تباينات في المحلِّلات (Parsers) بين الخوادم الأمامية والخلفية، مما يتيح هجمات متطورة لتهريب الطلبات. تساعد هذه الأدوات في تحديد مثل هذه الثغرات لاختبار الأمن الدفاعي.
http1-desync-test.go)أداة شاملة لاختبار ثغرات عدم التزامن HTTP/1، تنفّذ أنماط هجوم متعددة.
# استنساخ المستودع
git clone https://github.com/nconsolo/echteeteepee.git
cd echteeteepee
# تثبيت الاعتماديات
go mod download
# بناء الأداة
go build -o http1-desync-test http1-desync-test.go
# اختبار جميع أنماط الهجوم
./http1-desync-test -target https://example.com
# اختبار نمط هجوم محدد
./http1-desync-test -target https://example.com -test vh
# تفعيل المخرجات المفصلة
./http1-desync-test -target https://example.com -verbose
# ضبط مهلة زمنية مخصصة
./http1-desync-test -target https://example.com -timeout 10s
-target: عنوان URL المستهدف (مطلوب)-test: نوع الاختبار: all، vh، 0cl، expect، double، clte (الافتراضي: all)-timeout: المهلة الزمنية للطلب (الافتراضي: 5s)-verbose: تفعيل المخرجات المفصلة لعرض الطلبات/الاستجابات الخامnuclei-templates/http1-desync.yaml)قالب مسح ضوئي آلي لـ Nuclei لكشف ثغرات عدم التزامن في HTTP/1 على نطاق واسع.
# تثبيت Nuclei (إذا لم يكن مثبتاً بالفعل)
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
# نسخ القالب إلى دليل قوالب Nuclei
cp nuclei-templates/http1-desync.yaml ~/.nuclei-templates/
# فحص هدف واحد
nuclei -u https://example.com -t nuclei-templates/http1-desync.yaml
# فحص أهداف متعددة
nuclei -l targets.txt -t nuclei-templates/http1-desync.yaml
# فحص مع تحديد معدل الطلبات
nuclei -u https://example.com -t nuclei-templates/http1-desync.yaml -rl 10
جميع أنماط الهجوم مبنية على نتائج أبحاث جيمس كيتل وتقنيات الاستغلال المثبتة.
المصدر: بحث جيمس كيتل "HTTP/1 Must Die"
يستغل التباينات التي يرى فيها الخادم الوكيل الأمامي حدّاً للطلب بينما يرى الخادم الخلفي حدّاً آخر. تتضمّن حمولة الهجوم طلباً مخفياً داخل ما يبدو كبيانات ترويسة للخادم الأمامي، لكن الخادم الخلفي يفسّره كطلب منفصل.
مثال من البحث: استُخدم لإظهار اختلافات المحلِّلات لدى كبار مزوّدي شبكات توصيل المحتوى (CDN).
المصدر: نتائج اكتشاف ثغرات جيمس كيتل في IIS وT-Mobile
يستغل التفسيرات المختلفة لترويسات Content-Length: 0 بين الخوادم، حيث تتجاهل بعض الخوادم الجسم عندما يكون CL=0 بينما تظل خوادم أخرى تعالجه، مما يؤدي إلى التباس في حدود الطلبات.
الأثر الواقعي: استُغل بنجاح ضد خوادم IIS وبنية T-Mobile التحتية.
المصدر: بحث جيمس كيتل حول T-Mobile وLastPass
يستغل آلية Expect: 100-continue حيث تتعامل الخوادم الأمامية والخلفية مع الاستمرار بشكل مختلف. يخلق هذا فرصاً لتهريب الطلبات بينما ينتظر الخادم الأمامي استجابة 100-continue.
السياق البحثي: عُرض ضد أنظمة المصادقة في T-Mobile وLastPass.
المصدر: منهجية جيمس كيتل المتقدمة في عدم التزامن
يسلسل هجمات عدم تزامن متعددة لتسميم قائمة انتظار الاستجابات، مما يتيح للمهاجمين التحكم في الاستجابات التي يستقبلها المستخدمون الآخرون. يمثل هذا أحد أكثر الهجمات تطوراً في البحث.
النتيجة الحرجة: يتيح السيطرة الكاملة على الموقع عبر تقديم استجابات خبيثة للمستخدمين الشرعيين.
المصدر: بحث جيمس كيتل الأساسي حول غموض HTTP/1.1
يستغل التعارضات بين ترويسات Content-Length وTransfer-Encoding: chunked. تمنح الخوادم المختلفة أولويات مختلفة لهذه الترويسات، مما يخلق تباينات في المحلِّلات تتيح تهريب الطلبات.
الأساس: تمثل هذه التعارضات الخلل الجوهري الذي حدده جيمس كيتل في مواصفات HTTP/1.1.
استناداً إلى منهجية بحث جيمس كيتل، تبحث الأدوات عن:
وفقاً لتصنيف الأثر لدى جيمس كيتل:
صُممت هذه الأدوات من أجل:
لا تستخدم هذه الأدوات:
باتباع منهجية جيمس كيتل، تحافظ الأدوات على اتصالات HTTP/1.1 دائمة لاختبار حالات عدم التزامن بشكل صحيح. ينشئ كل اختبار اتصال TCP واحداً ويرسل طلبات متعددة لملاحظة اختلافات التحليل.
تُصمَّم حمولات الهجوم بعناية بناءً على الأنماط الدقيقة التي استخدمها جيمس كيتل في بحثه، مما يضمن التوافق مع سلوكيات الخوادم التي وثقها.
يطبّق منطق الكشف نفس المؤشرات التي استخدمها جيمس كيتل لتحديد هجمات عدم التزامن الناجحة أثناء بحثه في مكافآت الثغرات الذي تجاوز 350 ألف دولار.
استناداً إلى نتائج جيمس كيتل وتوصياته:
رخصة MIT - راجع ملف LICENSE للتفاصيل
هذه الأدوات مقدمة للأغراض التعليمية والأمن الدفاعي فقط. يتحمل المستخدمون مسؤولية ضمان حصولهم على الإذن المناسب قبل اختبار أي أنظمة، ولا يتحمل المؤلفون أي مسؤولية عن إساءة الاستخدام أو الأضرار الناجمة عن هذه الأدوات.