01أساسيات الترميز على الويب

تعريف الترميز (Encoding)

عملية تمثيل البيانات والمعلومات بصيغة مهيكلة تسمح بنقلها وتخزينها وتفسيرها من الحاسبات والبشر — مكوّن حيوي في نقل وعرض المعلومات على الإنترنت. يضمن إن البيانات (نصوص، صور، ملفات، وسائط) تنتقل وتُعرَض بشكل صحيح عبر تقنيات الويب، عادة بتحويل البيانات من شكلها الأصلي لصيغة مناسبة للنقل والتخزين الرقمي مع الحفاظ على معناها وسلامتها.

أهميته في اختبار الاختراق

الترميز جانب أساسي في اختبار اختراق تطبيقات الويب — خصوصًا في التحقق من المدخلات ونقل البيانات ومتجهات الهجوم. فحص كيف يستجيب التطبيق للبيانات المُرمَّزة بيكشف ثغرات محتملة تؤدي لهجمات زي SQL Injection وXSS وهجمات حقن أخرى.


02مجموعات الأحرف (ASCII · Unicode · UTF)

ما هو الـ Charset؟

مجموعة من الأحرف والرموز المرتبطة بأكواد رقمية فريدة (Code Points) — بتحدّد إزاي البيانات النصية تُحوَّل لقيم ثنائية في أنظمة الحوسبة. أمثلة: ASCII، Unicode، Latin-1.

ASCII

American Standard Code for Information Interchange — معيار ترميز شهير يحتوي 128 حرف، طُوِّر في الستينيات. بيستخدم 7 بتات لكل حرف، ويغطّي الحروف الإنجليزية الكبيرة (A-Z، 65-90) والصغيرة (a-z، 97-122) والأرقام (0-9، 48-57) وعلامات الترقيم والرموز التحكّمية. محدود — مش بيدعم لغات تانية زي الصينية.

Unicode وUTF

معيار ترميز يهدف لاحتواء أحرف من كل أنظمة الكتابة واللغات حول العالم — بيمكّن الحواسيب من التعامل مع نصوص متعدّدة اللغات. "UTF" تعني Unicode Transformation Format، وهي مخططات ترميز مختلفة لتمثيل أحرف Unicode كبيانات ثنائية.

UTF-8
ترميز متغيّر الطول (8-bit)
أحرف ASCII بتُمثَّل بـ Byte واحد (توافق رجعي)، والأحرف غير ASCII بتستخدم عدة بايتات حسب الـ Code Point. الأكثر استخدامًا على الويب لكفاءته وتوافقه مع ASCII.
UTF-16
ترميز متغيّر الطول (16-bit)
أحرف بـ Code Points أقل من 65536 (BMP) بتُمثَّل بـ 2 بايت، والأعلى بـ4 بايت (Surrogate Pairs). شائع في Java وأنظمة ويندوز.

03ترميز HTML (HTML Entity Encoding)

تحويل الأحرف الخاصة والرموز المحجوزة لكيانات HTML المقابلة لها (HTML Entities) لضمان عرضها بشكل صحيح في المتصفحات وتجنّب أي تفسير غير مقصود كـ كود HTML. حاسم جدًا للحفاظ على سلامة محتوى الويب ومنع هجمات XSS. كيانات HTML بتبدأ بـ & وتنتهي بـ ; — لما المتصفح يصادف كيان في صفحة HTML، هيعرض الرمز للمستخدم بدل ما يفسّره كعنصر لغة HTML.

الكيانالرمز الأصلي
&lt;< (أصغر من)
&gt;> (أكبر من)
&amp;& (علامة العطف)
&quot;" (علامة اقتباس مزدوجة)
&apos;' (فاصلة علوية)
&nbsp;مسافة غير قابلة للكسر

04ترميز الروابط (URL Encoding)

يُعرف أيضًا بـ Percent-Encoding — عملية لترميز الأحرف الخاصة والمحجوزة وغير ASCII لصيغة آمنة للنقل داخل الروابط (URLs/URIs). بيستبدل الأحرف غير الآمنة بعلامة % متبوعة برقمين سداسي عشري يمثّلان كود ASCII للحرف.

الأحرف المحجوزة وغير المحجوزة

المتصفح?arg=test with spaces?arg=<h1>hello world</h1>
Firefox / Chrome / Operaarg=%20test%20with%20spacesarg=%3Ch1%3Ehello%20world%3C/h1%3E
Internet Explorerarg= test with spacesarg=<h1>hello world</h1> (بدون ترميز)
ملاحظة أمنية مهمة

URL-Encoding بيحصل تلقائيًا في المتصفح — وبالرغم إنه بيبان كميزة أمنية، هو مش كده فعليًا. ده طريقة لإرسال البيانات عبر الإنترنت بس، لكن ممكن يقلّل (أو يوسّع) سطح الهجوم في حالات معيّنة — فروقات المتصفحات في التعامل مع الترميز (زي IE اللي مبيرمّزش أحيانًا) ممكن تفتح فرص تجاوز فلاتر مش متوقَّعة.


05ترميز Base64

طريقة لترميز بيانات ثنائية (صور، ملفات صوت، بيانات غير نصية) لصيغة نصية — شائع الاستخدام في سياقات بتدعم بيانات نصية بس (رسائل بريد إلكتروني، روابط).

آلية العمل

حالات الاستخدام


06مقدمة في تصفية المدخلات

ممارسة فحص والتحكّم في بيانات الإدخال والإخراج في تطبيق الويب لمنع الثغرات الأمنية والحماية من أنواع مختلفة من الهجمات — ممارسة قياسية شائعة لحماية التطبيقات بجانب ترميز المخرجات.

تقنيات تصفية المدخلات

1Data Validation — التحقق إن البيانات الواردة مطابقة لصيغ وقيود متوقَّعة
2Input Validation — فحص المدخلات بحثًا عن تهديدات أمنية محتملة (حمولات SQLi، سكريبتات خبيثة)
3Input Sanitization — تنظيف أو Escaping الأحرف الخطيرة (تحويلها لكيانات HTML مثلًا)
4Content Security Policy (CSP) — تحديد مصادر المحتوى المسموحة للتحميل
5CSRF Protection — ضمان صحة Anti-CSRF Tokens في الطلبات الواردة
6WAFs — تصفية طلبات HTTP الواردة بقواعد وAlgorithms محدَّدة مسبقًا
فلترة Regex

التعبيرات النمطية (Regex) بتُستخدَم لفلترة والتحقق من البيانات مقابل أنماط معقّدة — لكن الاستخدام غير الدقيق للـ Regex ممكن يُدخِل ثغرات أمنية بنفسه، فلازم صياغة واختبار دقيق جدًا لأي نمط.


07آليات أمان تطبيقات الويب

ضمانات وإجراءات بتُطبَّق لحماية تطبيقات الويب من مجموعة واسعة من التهديدات والثغرات الأمنية — أساسية لضمان السرّية والسلامة والتوافر.

الآليةالوظيفة
Authenticationالتحقق من هوية المستخدمين والتأكد من صلاحيتهم للوصول (كلمة مرور، MFA، بيومترية)
Authorizationتحديد الإجراءات والموارد المسموح للمستخدم المصادَق عليه الوصول إليها
Input Validation/Filteringالتحقق وتنقية البيانات لمنع SQLi وXSS وحقن الأوامر
Session Managementإنشاء وإدارة وتأمين جلسات المستخدمين — Timeouts، توكنات آمنة، حماية من Session Fixation
CSRF Protectionمنع المهاجمين من خداع المستخدمين لتنفيذ طلبات غير مصرَّح بها
Security Headersرؤوس HTTP زي CSP، X-Content-Type-Options، X-Frame-Options للتحكّم في عرض وأمان الصفحة
Rate Limitingتقييد عدد الطلبات من مستخدم أو IP خلال فترة زمنية — يمنع Brute-force وDDoS

08آليات الدفاع وتقنيات التحايل (Evasion)

آليات الدفاع الاستباقية

تعريف Evasion

استخدام تقنيات وطرق متنوّعة لتجاوز أو الالتفاف حول آليات وضوابط الأمان الموضوعة لحماية تطبيق الويب — الهدف الأساسي: خداع الإجراءات الأمنية (جدران نارية، IDS، فلاتر تحقق) لتوصيل حمولات خبيثة أو استغلال ثغرات.

تقنيات Evasion الأساسية

WAFs مقابل Proxies

الخاصيةWAFProxy
الغرض الأساسيأمان تطبيقات الويبمتعدّد الأغراض — مش بالضرورة مركَّز على الأمان
التعامل مع الترافيكيحلّل ويفلتر ترافيك الويبوسيط لأغراض متنوّعة
التركيز الأمنيمتخصّص جدًا في أمان تطبيقات الويبحالات استخدام أوسع من الأمان
مجموعات القواعدقواعد أمنية محدَّدة مسبقًاقواعد وسياسات أكثر مرونة وتنوّعًا
التهديدات المستهدَفةSQLi، XSS، وهجمات تطبيقات أخرىفلترة محتوى، حجب جغرافي، حجب IP، Rate Limiting

09تجاوز Squid Proxy

Squid سيرفر بروكسي وCache مفتوح المصدر وواسع الانتشار — بيعمل كوسيط بين الأجهزة والسيرفرات، بيُستخدَم عادة لتحسين الأداء وتعزيز الأمان وإدارة الوصول للإنترنت.

مميزات Squid الأساسية

Caching
تخزين مؤقت للمحتوى
بيخزّن المحتوى المطلوب بتكرار محليًا — لما عميل يطلب صفحة مخزَّنة بالفعل، بيتقدَّم المحتوى من الـ Cache بدل جلبه من السيرفر الأصلي.
Access Control
ضبط الوصول
آليات ضبط وصول قوية — الأدمنز يقدروا يضبطوا قواعد تحدّد مين يقدر يوصل لمواقع أو خدمات معيّنة.
Content Filtering
فلترة المحتوى
حجب الوصول لمواقع أو فئات مواقع معيّنة (سوشيال ميديا، محتوى للبالغين) — غالبًا لفرض سياسات استخدام مقبول في المؤسسات.
مفهوم التجاوز

قيود البروكسي القائمة على المتصفح (زي حجب مواقع معيّنة عبر Squid) غالبًا بتعتمد على فحص الرابط أو النطاق — تقنيات زي تغيير الـ User-Agent، استخدام بروتوكولات بديلة، أو الوصول عبر مسارات غير متوقَّعة ممكن تساعد في تفادي هذه القيود لو الإعداد غير محكَم.


--منهجية تجاوز الفلاتر خطوة بخطوة

1
تحديد نوع الفلتر

هل الفلتر من جهة العميل (JavaScript) أم من جهة السيرفر؟ وهل فيه WAF أو Proxy وسيط؟ فلتر جهة العميل أسهل بكتير في التجاوز لأنه قابل للتعطيل أو التلاعب مباشرة.

2
فهم منطق الفلترة

هل بيستخدم Blacklist (كلمات محظورة) أم Whitelist (أنماط مسموحة)؟ Blacklist أسهل في التجاوز عادة لأنها غالبًا غير شاملة.

3
تجربة الترميز المختلف

جرّب HTML Encoding، URL Encoding (بما فيه Double Encoding)، أو Base64 — الفلاتر غالبًا بتفحص النمط الخام بس، مش كل أشكال الترميز الممكنة.

4
التلاعب في بنية الحمولة

تغيير حالة الأحرف (Case Variation)، إضافة تعليقات (Comments) جوه الحمولة، أو تقسيمها (Fragmentation) لتفادي التوقيعات (Signatures) المعروفة.

5
التحقق والتكرار

اختبر كل تقنية على حدة ووثّق أي حمولة نجحت — التجاوز غالبًا محتاج دمج أكتر من تقنية مع بعض.


--Cheat Sheet مرجعي

مرجع سريع لأنواع الترميز

النوعمثالالاستخدام الشائع في التجاوز
HTML Entity&#60;script&#62;تجاوز فلاتر XSS السطحية
URL Encoding%3Cscript%3Eتجاوز فلاتر تفحص النص الخام فقط
Double URL Encoding%253Cscript%253Eتجاوز فلاتر بتفك الترميز مرة واحدة بس
Base64PHNjcmlwdD4=تمرير حمولات عبر فلاتر مش بتفحص المحتوى المُرمَّز
Unicode\u003Cscript\u003Eتجاوز فلاتر بتبحث عن أحرف ASCII محدَّدة بس

تقنيات تجاوز WAF شائعة

WAFs شائعة يُنصَح بالتدرّب على تجاوزها

Quick Wins — أسرع المسارات في تجاوز الفلاتر

#التحققالطريقةالنتيجة المحتملة
1الفلتر من جهة العميل بس (JavaScript)؟تعطيل JS أو إرسال الطلب مباشرة عبر Burpتجاوز كامل بدون أي تلاعب في الحمولة
2الفلتر بيفحص نمط واحد فقط (Blacklist)؟تجربة أشكال ترميز مختلفة للحمولة نفسهاتجاوز فلاتر Signature-based
3WAF بيرفض طلبات كبيرة الحجم؟تقسيم الحمولة على عدة طلبات (Chunking)تفادي حدود حجم الفحص
4فيه فرق سلوك بين المتصفحات في الترميز؟مراجعة جدول فروقات المتصفحات (IE مقابل Chrome/Firefox)استغلال ثغرة ترميز خاصة بمتصفح معيّن

الخلاصة العامة للموديول

الموديول ده غطّى أساسيات الترميز على الويب ودورها الحيوي في تجاوز الفلاتر، وآليات تصفية المدخلات من جهة العميل والسيرفر، ومقدمة شاملة في آليات الدفاع وتقنيات Evasion الخاصة بـ WAFs والبروكسيات.

$ cat ./ewptx_module05_summary.txt

الفكرة الجوهرية للموديول: أي فلتر أو WAF بيعتمد على التعرّف على نمط معروف مسبقًا — والترميز والتمويه هما الأداتان الأساسيتان لكسر التطابق مع النمط ده من غير ما يتغيّر المعنى الفعلي للحمولة بالنسبة للتطبيق الهدف. المختبر المحترف بيفكّر زي الفلتر نفسه عشان يعرف منين هيفلت.

Professional Mindset

قبل ما تحاول تجاوز أي فلتر، افهم أولًا إيه اللي بيمنعك بالظبط — هل هو رفض كامل للطلب، تنقية للمحتوى، أم رسالة خطأ بس؟ جرّب دايمًا الحمولة الخام الأبسط أولًا، وبعدين صعّد الترميز والتمويه تدريجيًا. ووثّق أي Bypass ناجح بدقة — غالبًا بيكون مفيد في اختبارات تانية لنفس الـ WAF أو إصدارات مشابهة منه.


نهاية نوتس الموديول الخامس — Filter Evasion & WAF Bypass Techniques (eWPTXv3)