hacktricks/pentesting-web/proxy-waf-protections-bypass.md

127 lines
8.5 KiB
Markdown
Raw Normal View History

# प्रॉक्सी / WAF सुरक्षा बायपास
<details>
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
HackTricks का समर्थन करने के अन्य तरीके:
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें**, तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) में या **Twitter** पर 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) को **फॉलो** करें।
* **अपनी हैकिंग ट्रिक्स साझा करें, HackTricks** के [**github repos**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) में PRs सबमिट करके।
</details>
## Nginx ACL नियमों को बायपास करना <a href="#heading-bypassing-nginx-acl-rules-with-nodejs" id="heading-bypassing-nginx-acl-rules-with-nodejs"></a>
2023-11-06 08:38:02 +00:00
Nginx प्रतिबंध उदाहरण:
```plaintext
location = /admin {
2023-11-06 08:38:02 +00:00
deny all;
}
location = /admin/ {
2023-11-06 08:38:02 +00:00
deny all;
}
```
### NodeJS
<figure><img src="../.gitbook/assets/image (713).png" alt=""><figcaption></figcaption></figure>
* Nginx `\xa0` वर्ण को पथनाम का हिस्सा मानता है, इसलिए `/admin` URI के लिए ACL नियम सक्रिय नहीं होगा। नतीजतन, Nginx HTTP संदेश को बैकएंड को अग्रेषित करेगा;
* जब Node.js सर्वर को `/admin\x0a` URI प्राप्त होता है, तो `\xa0` वर्ण हटा दिया जाएगा, जिससे `/admin` एंडपॉइंट की सफल प्राप्ति होगी।
| Nginx संस्करण | **Node.js बायपास वर्ण** |
| ------------- | ----------------------------- |
| 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
Flask URL पथ से `\x85`, `\xA0`, `\x1F`, `\x1E`, `\x1D`, `\x1C`, `\x0C`, `\x0B`, और `\x09` वर्णों को हटा देता है, लेकिन NGINX नहीं करता।
<figure><img src="../.gitbook/assets/image (714).png" alt=""><figcaption></figcaption></figure>
| Nginx संस्करण | **Flask बायपास वर्ण** |
| ------------- | -------------------------------------------------------------- |
| 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 <a href="#heading-bypassing-nginx-acl-rules-with-spring-boot" id="heading-bypassing-nginx-acl-rules-with-spring-boot"></a>
नीचे, आप देखेंगे कि कैसे ACL सुरक्षा को पथनाम के अंत में `\x09` या वर्ण जोड़कर दरकिनार किया जा सकता है:
<figure><img src="../.gitbook/assets/image (715).png" alt=""><figcaption></figcaption></figure>
| Nginx संस्करण | **Spring Boot बायपास वर्ण** |
| ------------- | --------------------------------- |
| 1.22.0 | `;` |
| 1.21.6 | `;` |
| 1.20.2 | `\x09`, `;` |
| 1.18.0 | `\x09`, `;` |
| 1.16.1 | `\x09`, `;` |
### PHP-FPM <a href="#heading-bypassing-nginx-acl-rules-with-php-fpm-integration" id="heading-bypassing-nginx-acl-rules-with-php-fpm-integration"></a>
निम्नलिखित Nginx FPM कॉन्फ़िगरेशन पर विचार करें:
```plaintext
location = /admin.php {
2023-11-06 08:38:02 +00:00
deny all;
}
location ~ \.php$ {
2023-11-06 08:38:02 +00:00
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
```
इसे `/admin.php/index.php` तक पहुँचकर बायपास किया जा सकता है:
<figure><img src="../.gitbook/assets/image (716).png" alt=""><figcaption></figcaption></figure>
### रोकथाम कैसे करें <a href="#heading-how-to-prevent" id="heading-how-to-prevent"></a>
इन समस्याओं को रोकने के लिए, आपको Nginx ACL नियमों में `=` अभिव्यक्ति के बजाय `~` अभिव्यक्ति का उपयोग करना चाहिए, उदाहरण के लिए:
COPYCOPY
```plaintext
location ~* ^/admin {
2023-11-06 08:38:02 +00:00
deny all;
}
```
## AWS WAF ACL को Line Folding के साथ बायपास करना <a href="#heading-bypassing-aws-waf-acl-with-line-folding" id="heading-bypassing-aws-waf-acl-with-line-folding"></a>
HTTP हेडर में AWS WAF सुरक्षा को निम्नलिखित सिंटैक्स का उपयोग करके बायपास करना संभव है जहां AWS WAF समझ नहीं पाएगा कि X-Query हेडर में sql इंजेक्शन पेलोड होता है जबकि पीछे का नोड सर्वर समझेगा:
```http
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
```
2023-11-06 08:38:02 +00:00
## संदर्भ
* [https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies)
<details>
<summary><strong>AWS हैकिंग सीखें शून्य से लेकर हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
HackTricks का समर्थन करने के अन्य तरीके:
* यदि आप चाहते हैं कि आपकी **कंपनी का विज्ञापन HackTricks में दिखाई दे** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा संग्रह विशेष [**NFTs**](https://opensea.io/collection/the-peass-family)
* 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) में **शामिल हों** या [**telegram group**](https://t.me/peass) या **Twitter** पर 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm) को **फॉलो करें**.
* **HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स साझा करें.
</details>