Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/bishopfox/imperva_gzip_waf_bypass
تحليل الثغرات الأمنيةالتهرب من IDS/IPSاستغلال تطبيقات الويبتجاوز WAFاختبار الاختراق
GitHubbishopfox/imperva_gzip_waf_bypass

Imperva_gzip_WAF_Bypass

استغلال لتجاوز جدار حماية الويب السحابي Imperva باستخدام ترويسة Content-Encoding بنوع gzip للالتفاف على قواعد WAF في طلبات HTTP POST. يتضمن سكريبت اكتشاف وخطوات اختبار يدوي.

عرض المستودع

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
16829منذ 4 سنواتتمت المراجعة من قبل Kitploit

تجاوز طلبات POST لجدار حماية تطبيقات الويب (WAF) من Imperva

كان جدار حماية Imperva السحابي (Cloud WAF) عرضةً لتجاوز يسمح للمهاجمين بتفادي قواعد WAF عند إرسال حمولات HTTP POST خبيثة، مثل استغلالات log4j، وحقن SQL، وتنفيذ الأوامر، واجتياز الدلائل، وXXE، وغيرها.

المعالجة

تعامل فريق Imperva مع هذا الأمر بجدية بالغة منذ اللحظة التي أُبلغوا فيها به، وقدموا إصلاحًا عالميًا في غضون أيام قليلة فقط. تحية لهم. لقد تم تحديث جميع عملاء Cloud WAF تلقائيًا اعتبارًا من 22 ديسمبر 2021. كان العمل مع Imperva رائعًا، ومن الواضح أن لديهم فريقًا أمنيًا ناضجًا وماهرًا وقادرًا.

طريقة الاستغلال

أضف الترويسة Content-Encoding: gzip إلى طلبات HTTP POST. اترك بيانات POST كما هي. لا تقم بترميزها. طالما أن أول أربعة بايتات من ترويسة Content-Encoding هي gzip، فلن يتم تطبيق أي قواعد WAF على طلبات POST.

يمكنك القيام بذلك في Burp باستخدام ميزة Match & Replace في البروكسي:

أضف ترويسة جديدة بهذه الطريقة:

هذا كل شيء؛ أنت جاهز للانطلاق.

تشغيل سكربت الاختبار

شغّل imperva_gzip.py ضد عنوان URL يدعم طلبات POST بالطريقة التالية:

الصيغة: ./imperva_gzip.py [[-t] | [-r]] URL

لتخمين نوع WAF لعنوان URL معين:

root@kitploit:~
$ ./imperva_gzip.py -t https://www.vulnerable.com/search
Imperva Incapsula
$ ./imperva_gzip.py -t https://www.wordpress-user.com/login
WordFence
$ ./imperva_gzip.py -t https://www.cloudflare-customer.com
Cloudflare

للتحقق مما إذا كان WAF عرضةً لتجاوز gzip:

root@kitploit:~
$ ./imperva_gzip.py https://www.vulnerable.com/search
[+] Can we make POST requests to https://www.vulnerable.com/search?
[+] Checking for Imperva WAF...
[+] Attempting gzip bypass for UNIX trigger...
[+] Vulnerable! HTTP response code: 200
[+] Attempting gzip bypass for Windows trigger...
[+] Vulnerable! HTTP response code: 200

إذا ظهرت لك رسالة الخطأ هذه:

root@kitploit:~
$ ./imperva_gzip.py https://www.vulnerable.com/search
[+] Can we make POST requests to https://www.vulnerable.com/search?
[!] Can't POST to https://www.vulnerable.com/search. Try -r if 30x redirects are allowed. HTTP response code: 302

فجرّب تمرير -r في سطر الأوامر لتفعيل الوضع المرن. الوضع المرن معطّل افتراضيًا، وهو ما يعني أن طلب POST من المتوقع أن يحصل على استجابة HTTP 200 من الخادم. يوسّع -r نطاق الاستجابات المقبولة ليشمل HTTP 2xx و3xx.

البرمجة النصية

أكواد الخروج لـ imperva_gzip.py هي كما يلي:

root@kitploit:~
0: Returned after getting WAF type.
1: Command-line was invalid.
2: There was an error connecting. Could be DNS error, timeout, etc.
3: No WAF was detected; malicious UNIX/Windows payloads weren't blocked.
4: A WAF was detected, but it wasn't Imperva.
5: The server responded to a test POST request with something other than HTTP 200.
128: There is an Imperva WAF, but it is not vulnerable to the gzip bypass.
129: The bypass was effective for the UNIX payload, but not the Windows one.
130: The bypass was effective for the Windows payload, but not the UNIX one.
131: The bypass was effective against both Windows and UNIX payloads.

عملية الاختبار اليدوي للتحقق من الثغرة

أرسل ثلاثة طلبات POST:

  1. أنشئ خطًا أساسيًا لطلب/استجابة POST باستخدام طلب POST صالح وغير ضار
  2. فعّل جدار حماية Imperva WAF باستخدام نفس طلب POST، ولكن مع بيانات «خبيثة» إضافية مثل &test=../../../../../../../etc/shadow في جسم الطلب للتحقق من أن Imperva يحجبه
  3. أضف الترويسة Content-Encoding: gzip إلى نفس الطلب الخبيث وتحقق من أن Imperva لا يحجبه

طرق الترميز الأخرى

وفقًا لـ https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding، هناك أربع قيم صالحة لترويسة Content-Encoding:

  • compress
  • deflate
  • gzip
  • br

في الاختبارات، لم ينجح سوى gzip كتجاوز.

الإصدارات المتأثرة

جدار حماية Imperva السحابي (Cloud WAF)

يتم إدارة Cloud WAF بواسطة Imperva. ونتيجة لذلك، تؤثر التحديثات على Cloud WAF على جميع العملاء تقريبًا في نفس الوقت تقريبًا. وتم تصحيحه لجميع العملاء اعتبارًا من 22 ديسمبر 2021.

SecureSphere

تمت معالجة خطأ تجاوز gzip في منتج منفصل من Imperva يُسمى SecureSphere. تحتوي ملاحظات إصدار SecureSphere الإصدار 12.6 على هذه الفقرة:

SPHR-58185: عندما يفشل SecureSphere في فك ضغط جسم POST في الطلبات التي تحمل ترويسة "Content-Encoding: gzip/deflate"، فإنه لا يصدر أي تنبيه ويسمح بمرور الطلب.

أنا شبه متأكد من أن هذا هو نفس الخطأ، ربما بنفس الجذور البرمجية لـ Cloud WAF... إنه خطأ محدد جدًا بحيث يصعب وجوده في منتجين. تم حل المشكلة في SecureSphere في فبراير 2021، لكننا لا نعرف متى ظهرت لأول مرة. من المحتمل أن الثغرة كانت موجودة منذ سنوات!

التواصل

Bishop Fox

  • المؤلف: @carllivitt @bishopfox
  • الأمن الهجومي: Bishop Fox
  • الأمن الهجومي المستمر: Bishop Fox Cosmos
  • العلماء المجانين: Bishop Fox Labs

Imperva

دعم عملاء Imperva: https://www.imperva.com/support/technical-support/

المراجع

  • جدار حماية Imperva السحابي (Cloud WAF)
  • ملاحظات إصدار Imperva SecureSphere 12.6
  • ترويسة HTTP Content-Encoding
تنزيل الأداة