Accept: المتصفح يخبر الخادم بانه سوف يستقبل الرد من الخادم مثل صور او ملفات او صفحات.
Cookie: يتم استخدامها لكي يتم التواصل بين الخادم والمتصفح بشكل موثوق.
Cache-Control: لكي يحدد المتصفح المدة اللتي يقوم فيها بحفظ الملفات
Accept-Language: تحديد للغة معينة يطلبها المتصفح في الرد
Cookie: يتم استخدامها لكي يتم التواصل بين الخادم والمتصفح بشكل موثوق.
Cache-Control: لكي يحدد المتصفح المدة اللتي يقوم فيها بحفظ الملفات
Accept-Language: تحديد للغة معينة يطلبها المتصفح في الرد
Referer: يستخدم في اخبار السيرفر الجهة التي تم زيارة الموقع منها في الصورة تشير الى قوقل.
User-Agent: يستخدم لتحديد ماهو المتصفح الذي قام بارسال الطلب او البرنامج الذي تم استخدامه.
Host: يحدد اسم الموقع الذي تم طلبه.
Date: الوقت والتاريخ الحالي الذي يرد فيه السيرفر.
User-Agent: يستخدم لتحديد ماهو المتصفح الذي قام بارسال الطلب او البرنامج الذي تم استخدامه.
Host: يحدد اسم الموقع الذي تم طلبه.
Date: الوقت والتاريخ الحالي الذي يرد فيه السيرفر.
في هذا الرابط سوف تجدون جميع headers غير اللتي تم ذكرها.
developer.mozilla.org
developer.mozilla.org
GET: تسمى Get Request ويعني ان كل شيء سوف ينعرض في الرابط URL على سبيل المثال لو ذهبنا الى مربع البحث وقمنا بالبحث عن DNS. اللون الاحمر نوع method وهي GET واللون الاسود الذي قمنا بالحبث عنه وهو DNS واللون الازرق هو تطبيق الويب و سوف يظهر لنا الرابط هكذا : xredteam.com
HEAD: هي نفس طريقة عمل GET ولكن الخادم لن يرجع اي محتوى. في GET Method سيرجع Response Body ولكن في HEAD Method سوف يرجع لنا Response Headers. لها عدة استخدامات احدها عندما نريد تخمين الملفات والمسارات على تطبيق الويب فإننا نريد فقط HTTP Status لأن الرد سوف يكون اسرع من POST&GET.
PUT: تستخدم في محاولة رفع ملف الى الخادم بستخدام Request Headers وسوف يكون الرفع من خلال Request. لو كانت متاحة سوف نستطيع أن نرفع ملف الى الخادم ونقوم بتنفيذه.
وفي هذا الرابط سوف تجدون بقية انواع HTTP Methods غير اللتي تم ذكرها.
developer.mozilla.org
developer.mozilla.org
هناك خمس مجموعات للـ Status Codes وهي:
1xx: تم قبول الطلب وأن كل شيء جاري معالجته
2xx: الطلب ناجح وتم تنفيذه
3xx: يتم تحويل العميل الى مصدر آخر
4xx: يحتوي الطلب على خطأ من نوع ما
5xx: الخادم واجه مشكلة في تنفيذ الطلب
1xx: تم قبول الطلب وأن كل شيء جاري معالجته
2xx: الطلب ناجح وتم تنفيذه
3xx: يتم تحويل العميل الى مصدر آخر
4xx: يحتوي الطلب على خطأ من نوع ما
5xx: الخادم واجه مشكلة في تنفيذ الطلب
سأذكر بعض HTTP Codes اللتي تواجه محلل/ مهاجم تطبيقات الويب:
100 Continue: تم استلام الطلب المبدئي ولم يرفضه الخادم وسوف يقوم الخادم بالرد
200 OK: يشير هذا الطلب انه ناجح وسوف يعرض ما تم طلبه
201 Created: تم تنفيذ الطلب وقد نتج عنه انشاء ملف مثل استخدام Method PUT.
100 Continue: تم استلام الطلب المبدئي ولم يرفضه الخادم وسوف يقوم الخادم بالرد
200 OK: يشير هذا الطلب انه ناجح وسوف يعرض ما تم طلبه
201 Created: تم تنفيذ الطلب وقد نتج عنه انشاء ملف مثل استخدام Method PUT.
301 Moved Permanently: يستخدم عند اعادة التوجيه بشكل دائم
302 Found: يستخدم عند اعادة التوجيه بشكل مؤقت
400 Bad Request: الخادم لن يتمكن من تنفيذ الطلب او لن يقوم بتنفيذه لأن العميل قام بطلب غير صحيح او تالف
403 Forbidden: الطلب محظور لأن العميل قام بطلب صفحة او ملف غير مصرح له
302 Found: يستخدم عند اعادة التوجيه بشكل مؤقت
400 Bad Request: الخادم لن يتمكن من تنفيذ الطلب او لن يقوم بتنفيذه لأن العميل قام بطلب غير صحيح او تالف
403 Forbidden: الطلب محظور لأن العميل قام بطلب صفحة او ملف غير مصرح له
هنا تجدون جميع Status Codes الخاصة بـ HTTP.
httpstatuses.com
httpstatuses.com
HTTPS هو امتداد لـ HTTP Protocol وهي طريقة لضمان التواصل الآمن بين المتصفح والخادم ويعتمد على نوعين من Encryption Protocol اما SSL او TLS. وهنا للتعرف اكثر على SSL/TLS. en.wikipedia.org
الآن سوف نقوم بتحليل packet على الشبكة لنعرف الفرق بين HTTP/HTTPS ونتعرف على Clear Text Protocol and cryptographic protocol.
HTTP Authentication هي آلية او طريقة تستخدم للتحقق ومصادقة وحماية صفحة معينة من الدخول غير المباشر اليها و هناك عدة آليات تستخدم للمصادقة والتحقق من الوصول:
1- Basic
2- Digest
3- NTLM
1- Basic
2- Digest
3- NTLM
هنا تجدون امثلة على كل آلية من آليات المصادقة والتحقق من الوصول:
httpwatch.com
httpwatch.com
هنا بعض التحديات على HTTP Authentication:
pentesteracademylab.appspot.com
pentesteracademylab.appspot.com
Encoding راح نتعرف على بعض انواع
- URL Encoding
- Unicode Encoding
- Base64 Encoding
- URL Encoding
- Unicode Encoding
- Base64 Encoding
URL Encoding هي عملية تحويل الأحرف والرموز الى تنسيق او صيغة يمكن نقلها عبر الانترنت بستخدام ASCII على سبيل المثال لايمكن وضع مسافة في الرابط لان URL Encoding عادة يقوم بستبدال المسافة بعلامة (+). في هذا الرابط سوف تجدون جميع الرموز والأحرف اللي يتم عمل لها URL Encoding.
في بعض الاحيان اثناء مهاجمة تطبيق ويب يجب عليك ان تقوم بعمل encoding لهذه الرموز [ space , % , ? , & , = , ; , + , #, <>] عندما تريد ان تقوم بإدخالها عن طريق HTTP Request.
Unicode Encoding هو معيار عالمي تم تصميمه لتمثيل بعض الرموز المكتوبة بغير ASCII ولدعم كل نظم الكتابة في العالم بستخدام العديد من أنظمة الترميز والتي يمكن استخدامها لمعالجة بعض اللغات مثل الصينية والعربية والروسية وهناك العديد من Unicode مثل UTF-8, UTF-16.
Base64 Encoding يقوم بعملية الترميز وتمثيل البيانات بستخدام ASCII ويحتوي Base64 على 64 حرف ورمز وهي [0-10] , [A-Z] , [a-z] [+,/].
للاطلاع لكيفية عمل Base64 en.wikipedia.org
للاطلاع لكيفية عمل Base64 en.wikipedia.org
جاري تحميل الاقتراحات...