mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 22:52:06 +00:00
123 lines
7.9 KiB
Markdown
123 lines
7.9 KiB
Markdown
|
# プロキシ/WAF保護のバイパス
|
|||
|
|
|||
|
<details>
|
|||
|
|
|||
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|||
|
|
|||
|
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
|||
|
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
|||
|
* [**公式のPEASS&HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
|||
|
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
|||
|
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
|||
|
|
|||
|
</details>
|
|||
|
|
|||
|
## Nginx ACLルールのバイパス <a href="#heading-bypassing-nginx-acl-rules-with-nodejs" id="heading-bypassing-nginx-acl-rules-with-nodejs"></a>
|
|||
|
|
|||
|
Nginxの制限の例:
|
|||
|
```plaintext
|
|||
|
location = /admin {
|
|||
|
deny all;
|
|||
|
}
|
|||
|
|
|||
|
location = /admin/ {
|
|||
|
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 {
|
|||
|
deny all;
|
|||
|
}
|
|||
|
|
|||
|
location ~ \.php$ {
|
|||
|
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 {
|
|||
|
deny all;
|
|||
|
}
|
|||
|
```
|
|||
|
## 行折り返しを使用してAWS WAF ACLをバイパスする <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
|
|||
|
```
|
|||
|
## 参考文献
|
|||
|
|
|||
|
* [https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies)
|
|||
|
|
|||
|
<details>
|
|||
|
|
|||
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|||
|
|
|||
|
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
|
|||
|
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
|
|||
|
* [**公式のPEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
|
|||
|
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
|||
|
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
|
|||
|
|
|||
|
</details>
|