عملية تمثيل البيانات والمعلومات بصيغة مهيكلة تسمح بنقلها وتخزينها وتفسيرها من الحاسبات والبشر — مكوّن حيوي في نقل وعرض المعلومات على الإنترنت. يضمن إن البيانات (نصوص، صور، ملفات، وسائط) تنتقل وتُعرَض بشكل صحيح عبر تقنيات الويب، عادة بتحويل البيانات من شكلها الأصلي لصيغة مناسبة للنقل والتخزين الرقمي مع الحفاظ على معناها وسلامتها.
الترميز جانب أساسي في اختبار اختراق تطبيقات الويب — خصوصًا في التحقق من المدخلات ونقل البيانات ومتجهات الهجوم. فحص كيف يستجيب التطبيق للبيانات المُرمَّزة بيكشف ثغرات محتملة تؤدي لهجمات زي SQL Injection وXSS وهجمات حقن أخرى.
مجموعة من الأحرف والرموز المرتبطة بأكواد رقمية فريدة (Code Points) — بتحدّد إزاي البيانات النصية تُحوَّل لقيم ثنائية في أنظمة الحوسبة. أمثلة: ASCII، Unicode، Latin-1.
American Standard Code for Information Interchange — معيار ترميز شهير يحتوي 128 حرف، طُوِّر في الستينيات. بيستخدم 7 بتات لكل حرف، ويغطّي الحروف الإنجليزية الكبيرة (A-Z، 65-90) والصغيرة (a-z، 97-122) والأرقام (0-9، 48-57) وعلامات الترقيم والرموز التحكّمية. محدود — مش بيدعم لغات تانية زي الصينية.
معيار ترميز يهدف لاحتواء أحرف من كل أنظمة الكتابة واللغات حول العالم — بيمكّن الحواسيب من التعامل مع نصوص متعدّدة اللغات. "UTF" تعني Unicode Transformation Format، وهي مخططات ترميز مختلفة لتمثيل أحرف Unicode كبيانات ثنائية.
تحويل الأحرف الخاصة والرموز المحجوزة لكيانات HTML المقابلة لها (HTML Entities) لضمان عرضها بشكل صحيح في المتصفحات وتجنّب أي تفسير غير مقصود كـ كود HTML. حاسم جدًا للحفاظ على سلامة محتوى الويب ومنع هجمات XSS. كيانات HTML بتبدأ بـ & وتنتهي بـ ; — لما المتصفح يصادف كيان في صفحة HTML، هيعرض الرمز للمستخدم بدل ما يفسّره كعنصر لغة HTML.
| الكيان | الرمز الأصلي |
|---|---|
< | < (أصغر من) |
> | > (أكبر من) |
& | & (علامة العطف) |
" | " (علامة اقتباس مزدوجة) |
' | ' (فاصلة علوية) |
| مسافة غير قابلة للكسر |
يُعرف أيضًا بـ Percent-Encoding — عملية لترميز الأحرف الخاصة والمحجوزة وغير ASCII لصيغة آمنة للنقل داخل الروابط (URLs/URIs). بيستبدل الأحرف غير الآمنة بعلامة % متبوعة برقمين سداسي عشري يمثّلان كود ASCII للحرف.
[a-zA-Z] [0-9] [- . _ ~] — آمنة بدون ترميز: / ? # [ ] @ ! $ & " ( ) * + , ; = % — لازم تُرمَّز لما مالهاش دور خاص جوه الرابط| المتصفح | ?arg=test with spaces | ?arg=<h1>hello world</h1> |
|---|---|---|
| Firefox / Chrome / Opera | arg=%20test%20with%20spaces | arg=%3Ch1%3Ehello%20world%3C/h1%3E |
| Internet Explorer | arg= test with spaces | arg=<h1>hello world</h1> (بدون ترميز) |
URL-Encoding بيحصل تلقائيًا في المتصفح — وبالرغم إنه بيبان كميزة أمنية، هو مش كده فعليًا. ده طريقة لإرسال البيانات عبر الإنترنت بس، لكن ممكن يقلّل (أو يوسّع) سطح الهجوم في حالات معيّنة — فروقات المتصفحات في التعامل مع الترميز (زي IE اللي مبيرمّزش أحيانًا) ممكن تفتح فرص تجاوز فلاتر مش متوقَّعة.
طريقة لترميز بيانات ثنائية (صور، ملفات صوت، بيانات غير نصية) لصيغة نصية — شائع الاستخدام في سياقات بتدعم بيانات نصية بس (رسائل بريد إلكتروني، روابط).
+ و/)=) في آخر السلسلة المُرمَّزةممارسة فحص والتحكّم في بيانات الإدخال والإخراج في تطبيق الويب لمنع الثغرات الأمنية والحماية من أنواع مختلفة من الهجمات — ممارسة قياسية شائعة لحماية التطبيقات بجانب ترميز المخرجات.
التعبيرات النمطية (Regex) بتُستخدَم لفلترة والتحقق من البيانات مقابل أنماط معقّدة — لكن الاستخدام غير الدقيق للـ Regex ممكن يُدخِل ثغرات أمنية بنفسه، فلازم صياغة واختبار دقيق جدًا لأي نمط.
ضمانات وإجراءات بتُطبَّق لحماية تطبيقات الويب من مجموعة واسعة من التهديدات والثغرات الأمنية — أساسية لضمان السرّية والسلامة والتوافر.
| الآلية | الوظيفة |
|---|---|
| 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 |
استخدام تقنيات وطرق متنوّعة لتجاوز أو الالتفاف حول آليات وضوابط الأمان الموضوعة لحماية تطبيق الويب — الهدف الأساسي: خداع الإجراءات الأمنية (جدران نارية، IDS، فلاتر تحقق) لتوصيل حمولات خبيثة أو استغلال ثغرات.
| الخاصية | WAF | Proxy |
|---|---|---|
| الغرض الأساسي | أمان تطبيقات الويب | متعدّد الأغراض — مش بالضرورة مركَّز على الأمان |
| التعامل مع الترافيك | يحلّل ويفلتر ترافيك الويب | وسيط لأغراض متنوّعة |
| التركيز الأمني | متخصّص جدًا في أمان تطبيقات الويب | حالات استخدام أوسع من الأمان |
| مجموعات القواعد | قواعد أمنية محدَّدة مسبقًا | قواعد وسياسات أكثر مرونة وتنوّعًا |
| التهديدات المستهدَفة | SQLi، XSS، وهجمات تطبيقات أخرى | فلترة محتوى، حجب جغرافي، حجب IP، Rate Limiting |
Squid سيرفر بروكسي وCache مفتوح المصدر وواسع الانتشار — بيعمل كوسيط بين الأجهزة والسيرفرات، بيُستخدَم عادة لتحسين الأداء وتعزيز الأمان وإدارة الوصول للإنترنت.
قيود البروكسي القائمة على المتصفح (زي حجب مواقع معيّنة عبر Squid) غالبًا بتعتمد على فحص الرابط أو النطاق — تقنيات زي تغيير الـ User-Agent، استخدام بروتوكولات بديلة، أو الوصول عبر مسارات غير متوقَّعة ممكن تساعد في تفادي هذه القيود لو الإعداد غير محكَم.
هل الفلتر من جهة العميل (JavaScript) أم من جهة السيرفر؟ وهل فيه WAF أو Proxy وسيط؟ فلتر جهة العميل أسهل بكتير في التجاوز لأنه قابل للتعطيل أو التلاعب مباشرة.
هل بيستخدم Blacklist (كلمات محظورة) أم Whitelist (أنماط مسموحة)؟ Blacklist أسهل في التجاوز عادة لأنها غالبًا غير شاملة.
جرّب HTML Encoding، URL Encoding (بما فيه Double Encoding)، أو Base64 — الفلاتر غالبًا بتفحص النمط الخام بس، مش كل أشكال الترميز الممكنة.
تغيير حالة الأحرف (Case Variation)، إضافة تعليقات (Comments) جوه الحمولة، أو تقسيمها (Fragmentation) لتفادي التوقيعات (Signatures) المعروفة.
اختبر كل تقنية على حدة ووثّق أي حمولة نجحت — التجاوز غالبًا محتاج دمج أكتر من تقنية مع بعض.
| النوع | مثال | الاستخدام الشائع في التجاوز |
|---|---|---|
| HTML Entity | <script> | تجاوز فلاتر XSS السطحية |
| URL Encoding | %3Cscript%3E | تجاوز فلاتر تفحص النص الخام فقط |
| Double URL Encoding | %253Cscript%253E | تجاوز فلاتر بتفك الترميز مرة واحدة بس |
| Base64 | PHNjcmlwdD4= | تمرير حمولات عبر فلاتر مش بتفحص المحتوى المُرمَّز |
| Unicode | \u003Cscript\u003E | تجاوز فلاتر بتبحث عن أحرف ASCII محدَّدة بس |
| # | التحقق | الطريقة | النتيجة المحتملة |
|---|---|---|---|
| 1 | الفلتر من جهة العميل بس (JavaScript)؟ | تعطيل JS أو إرسال الطلب مباشرة عبر Burp | تجاوز كامل بدون أي تلاعب في الحمولة |
| 2 | الفلتر بيفحص نمط واحد فقط (Blacklist)؟ | تجربة أشكال ترميز مختلفة للحمولة نفسها | تجاوز فلاتر Signature-based |
| 3 | WAF بيرفض طلبات كبيرة الحجم؟ | تقسيم الحمولة على عدة طلبات (Chunking) | تفادي حدود حجم الفحص |
| 4 | فيه فرق سلوك بين المتصفحات في الترميز؟ | مراجعة جدول فروقات المتصفحات (IE مقابل Chrome/Firefox) | استغلال ثغرة ترميز خاصة بمتصفح معيّن |
الموديول ده غطّى أساسيات الترميز على الويب ودورها الحيوي في تجاوز الفلاتر، وآليات تصفية المدخلات من جهة العميل والسيرفر، ومقدمة شاملة في آليات الدفاع وتقنيات Evasion الخاصة بـ WAFs والبروكسيات.
الفكرة الجوهرية للموديول: أي فلتر أو WAF بيعتمد على التعرّف على نمط معروف مسبقًا — والترميز والتمويه هما الأداتان الأساسيتان لكسر التطابق مع النمط ده من غير ما يتغيّر المعنى الفعلي للحمولة بالنسبة للتطبيق الهدف. المختبر المحترف بيفكّر زي الفلتر نفسه عشان يعرف منين هيفلت.
قبل ما تحاول تجاوز أي فلتر، افهم أولًا إيه اللي بيمنعك بالظبط — هل هو رفض كامل للطلب، تنقية للمحتوى، أم رسالة خطأ بس؟ جرّب دايمًا الحمولة الخام الأبسط أولًا، وبعدين صعّد الترميز والتمويه تدريجيًا. ووثّق أي Bypass ناجح بدقة — غالبًا بيكون مفيد في اختبارات تانية لنفس الـ WAF أو إصدارات مشابهة منه.
نهاية نوتس الموديول الخامس — Filter Evasion & WAF Bypass Techniques (eWPTXv3)