السلام عليكم ,

الكثير من مختبري الاختراق اليدوي يعتمدون على HTTP header في ارسال واستقبال الطلبات لفهم ما يجري في الطلب والرد على الطلب من السيرفر .

اليوم سنشرح اهم العناصر الموجودة في الطلب وفي الرد والتي ستساعدك في فهم واكتشاف الثغرات المتعلقة بتطيقات الويب كما يمكن ان تكون نوع من الInput القابلة للاختراق .

لنحلل طلب عادي الى isecur1ty.org

 

123

العنصر الاول:

هو فعل أمر ياتي بعده المسار المطلوب في الموقع ونوع الطلب ويقسم الى :

  • GET: طلب اعتيادي يامر السيرفر بجلب محتوى مسار معين في حالة الطلب أعلاه فهو خالي من المتغيرات .
  • POST : يرسل البيانات للسيرفر ليقوم بحظفها او تحليلها من قبل المتصفح ويعتمد على نوع الفورم المدخل او نوع الطلب نفسه
  • PUT : يأمر السيرفر بوضع او تعديل محتوى في الرابط المطلوب والتحقق اذا ما كان موجوداً أو لا .
  • DELETE : يأمر السيرفر بحذف المورد المطلوب في الرابط .
  • TRACE : يأمر السيرفر بتعقب كيان ما او عملية ويعاد المعلومات المطلوبة للمرسل  .
  • HEAD : مشابه لامر GET لكن السيرفر لا يعيد اي محتوى له ويستخدم للتحقق من قابلية الوصول .

العنصر الثاني :

  • HOST: مهمة هذا العنصر تحديد الاستضافة المطلوبة كرابط او عنوان IP ويستخدم في حالة الاستضافة المشتركة لكي يعطي علم للسيرفر اي المواقع الموجودة عليه هي المطلوبة بدون العودة للاربط الاصلي .

العنصر الثالث:

  • USER-AGNET : هو عنصر يستخدم لاعطاء معلومات عن نوع المتصفح والنظام لكي يعرف السيرفر اي صفحة يعرض (مثال: لو فتحت الفيس بوك من على الهاتف بمتصفح كروم سيختلف عن الفيس بوك الذي ستعرضه بالمتصفح السمتخدم باللاب والفضل يرجع لهذا العنصر .) .

العنصر الرابع :

  • COOKIES : الكعكات هي عبارة عن بيانات يتم حفظها بالمتصفح والسيرفر لضمان بقاءك متصل او تحديد خيارات معينة لكل مستخدم وهي مهمة جداً .

العنصر الخامس :

  • REFERER : هذا العنصر يستخدم في إعطاء السيرفر الجهة التي تم القدوم منها مثلا لو دخلت لموقعنا من كوكل فسيوجد في الطلب .

Referer: http://www.google.com/blahblah

تم تجاهل البقية حالياً لان الدرس سيشمل فقط العناصر المذكورة اعلاه

 

الان ناتي للدرس المهم استعمال ما ذكر اعلاه في عملية اختبار الاختراق :

  • HOST:

في أكثر الأحيان يستخدم المبرمجون هذا العنصر في الصفحة لكي يستدعوا الروابط بدون تكرار اسم الموقع في البرمجة عن طريق معرفته من الHOST

1سؤال : من أين عرف السيرفر ما هو الرابط المطلوب ؟

الجواب : في الطلب الاصلي حين تذهب الى الموقع سوف يقوم المتصفح باضافة اسم الموقع الى الطلب في HOST

2

الآن نقوم بعمل اختبار اختراق لثغرة XSS (سيقتصر هذا الشرح عليها فقط)

لو نغير الطلب عن طريق اداة live HTTP header كالتالي :

3

 

سوف يقوم السيرفر بقراءة الHOST وسوف يظهره بالصفحة وتحصل على ثغرة XSS (حصلت على 120$ من Yandex لنفس الثغرة:) .

4

 

  • REFERER:

الريفيرر هو مهم جداً في البرمجيات والكثير من المبرمجين يعتمدون عليه في العودة للصفحات السابقة او معرفة الصفحة التي أتى منها الزائر لغرض التحليل والاحصاء ، كمثال :

لو دخلت لهذه الصفحة عن طريق Google ، سيكون الطلب والصفحة كالاتي :

 

6

 

لو غيرنا قيمة الREFERER  الى javascript:alert(‘isecur1ty’) ;s سوف يتم اظهار الرابط كجافا سكربت ويتم تطبيقه بمجرد الضغط على الرابط

7

 

هذه هي فقط تطبيقات عملية يوجد العديد من الثغرات الاخرى التي قد يتم استعمال الHTTP headers كنوع من المدخلات كsqli وغيرها وسوف أقوم بشرح الاخريات لاحقاً كأمثلة عملية والفائدة في ثغرات Stored XSS.

اتمنى ان اتكونوا استفدتم من المقال لاي استفسار ضع تعليقاً هنا او تواصل معي عبر (@Abdulahhusam)