Proxy / WAF Protections Bypass
Nginx ACL नियमों को पथनाम मैनिपुलेशन के साथ उलटाव करें
तकनीकें इस शोध से.
Nginx नियम उदाहरण:
NodeJS - Express
Nginx Version | Node.js Bypass Characters |
1.22.0 |
|
1.21.6 |
|
1.20.2 |
|
1.18.0 |
|
1.16.1 |
|
Flask
Nginx Version | Flask Bypass Characters |
1.22.0 |
|
1.21.6 |
|
1.20.2 |
|
1.18.0 |
|
1.16.1 |
|
Spring Boot
Nginx Version | Spring Boot Bypass Characters |
1.22.0 |
|
1.21.6 |
|
1.20.2 |
|
1.18.0 |
|
1.16.1 |
|
PHP-FPM
Nginx FPM configuration:
Nginx को /admin.php
तक पहुंचने को रोकने के लिए कॉन्फ़िगर किया गया है लेकिन इसे /admin.php/index.php
तक पहुंचकर इसे बाईपास किया जा सकता है।
कैसे रोकें
Mod Security नियमों को छलकरना
पथ भ्रांति
इस पोस्ट में बताया गया है कि ModSecurity v3 (3.0.12 तक), REQUEST_FILENAME
वेरिएबल को गलत ढंग से लागू किया गया था जिसमें एक्सेस किया गया पथ होना चाहिए था (पैरामीटर्स की शुरुआत तक)। यह इसलिए है क्योंकि यह पथ प्राप्त करने के लिए एक URL डीकोड करता था।
इसलिए, Mod Security में http://example.com/foo%3f';alert(1);foo=
जैसा अनुरोध करने पर समझेगा कि पथ केवल /foo
है क्योंकि %3f
को ?
में बदल देता है जो URL पथ को समाप्त करता है, लेकिन वास्तव में सर्वर को प्राप्त होने वाला पथ /foo%3f';alert(1);foo=
होगा।
इस बग से REQUEST_BASENAME
और PATH_INFO
भी प्रभावित हुए थे।
Mod Security के संस्करण 2 में भी कुछ ऐसा ही हुआ था जिससे एक सुरक्षा को छलने की अनुमति दी गई थी जो बैकअप फ़ाइलें संबंधित विस्तारों वाली फ़ाइलों तक पहुंचने से रोकती थी (जैसे .bak
) बस डॉट URL कोडेड करके %2e
भेजकर, उदाहरण के लिए: https://example.com/backup%2ebak
।
AWS WAF ACL को छलकरना
अविकृत हेडर
इस शोध में उल्लिखित है कि AWS WAF नियमों को HTTP हेडर्स पर लागू करने को छलकरना संभव था एक "अविकृत" हेडर भेजकर जो AWS द्वारा सही ढंग से विश्लेषित नहीं किया गया था लेकिन बैकएंड सर्वर द्वारा किया गया था।
उदाहरण के लिए, निम्नलिखित अनुरोध भेजकर एक SQL इन्जेक्शन के साथ हेडर X-Query:
यह संभव था कि AWS WAF को उस वक्त उलटा दिया जा सकता था क्योंकि यह समझ नहीं पाता था कि अगली पंक्ति हेडर के मान का हिस्सा है जबकि NODEJS सर्वर ऐसा करता था (यह सुधारा गया था)।
संदर्भ
Last updated