Proxy / WAF Protections Bypass

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

Nginx ACL नियमों को पथनाम मैनिपुलेशन के साथ उलटाव करें

तकनीकें इस शोध से.

Nginx नियम उदाहरण:

location = /admin {
deny all;
}

location = /admin/ {
deny all;
}

NodeJS - Express

Nginx Version

Node.js Bypass Characters

1.22.0

\xA0

1.21.6

\xA0

1.20.2

\xA0, \x09, \x0C

1.18.0

\xA0, \x09, \x0C

1.16.1

\xA0, \x09, \x0C

Flask

Nginx Version

Flask Bypass Characters

1.22.0

\x85, \xA0

1.21.6

\x85, \xA0

1.20.2

\x85, \xA0, \x1F, \x1E, \x1D, \x1C, \x0C, \x0B

1.18.0

\x85, \xA0, \x1F, \x1E, \x1D, \x1C, \x0C, \x0B

1.16.1

\x85, \xA0, \x1F, \x1E, \x1D, \x1C, \x0C, \x0B

Spring Boot

Nginx Version

Spring Boot Bypass Characters

1.22.0

;

1.21.6

;

1.20.2

\x09, ;

1.18.0

\x09, ;

1.16.1

\x09, ;

PHP-FPM

Nginx FPM configuration:

location = /admin.php {
deny all;
}

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}

Nginx को /admin.php तक पहुंचने को रोकने के लिए कॉन्फ़िगर किया गया है लेकिन इसे /admin.php/index.php तक पहुंचकर इसे बाईपास किया जा सकता है।

कैसे रोकें

location ~* ^/admin {
deny all;
}

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:

GET / HTTP/1.1\r\n
Host: target.com\r\n
X-Query: Value\r\n
\t' or '1'='1' -- \r\n
Connection: close\r\n
\r\n

यह संभव था कि AWS WAF को उस वक्त उलटा दिया जा सकता था क्योंकि यह समझ नहीं पाता था कि अगली पंक्ति हेडर के मान का हिस्सा है जबकि NODEJS सर्वर ऐसा करता था (यह सुधारा गया था)।

संदर्भ

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

Last updated