# Proxy / WAF Protections Bypass
AWSハッキングをゼロからヒーローまで学ぶ htARTE(HackTricks AWS Red Team Expert) HackTricksをサポートする他の方法: * **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](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グループに参加](https://discord.gg/hRep4RUj7f)**または[telegramグループに参加](https://t.me/peass)**または**Twitter**で**フォロー**する 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。** * **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。**
{% embed url="https://websec.nl/" %} ## Nginx ACLルールのパス名操作によるバイパス [この研究からのテクニック](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies)。 Nginxのルール例: ```plaintext 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: ```plaintext 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`にアクセスすることでこれをバイパスすることが可能です。 ### 防止方法 ```plaintext location ~* ^/admin { deny all; } ``` ## Mod Securityルールのバイパス ### パスの混乱 [**この投稿**](https://blog.sicuranext.com/modsecurity-path-confusion-bugs-bypass/)では、ModSecurity v3(3.0.12まで)が`REQUEST_FILENAME`変数を適切に実装していなかったことが説明されています。この変数はアクセスされたパス(パラメータの開始まで)を含むはずでした。これは、パスを取得するためにURLデコードを実行したためです。\ したがって、Mod Securityでの`http://example.com/foo%3f';alert(1);foo=`というリクエストは、`%3f`が`?`に変換されてURLパスが終了するため、パスが単に`/foo`であると仮定しますが、実際にサーバーが受信するパスは`/foo%3f';alert(1);foo=`になります。 変数`REQUEST_BASENAME`と`PATH_INFO`もこのバグの影響を受けました。 Mod Securityのバージョン2でも同様のことが起こり、特定の拡張子を持つファイル(例:`.bak`などのバックアップファイル)へのアクセスを防ぐ保護をバイパスすることができました。単にドットをURLエンコードした`%2e`を送信することで、例えば、`https://example.com/backup%2ebak`。 ## AWS WAF ACLのバイパス ### 不正なヘッダー [この研究](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies)によると、AWS WAFが適用されたHTTPヘッダーをバイパスすることが可能であり、AWSが適切に解析しなかったがバックエンドサーバーが解析した「不正な」ヘッダーを送信することで実現できました。 例えば、次のリクエストにSQLインジェクションを含むヘッダーX-Queryを送信することが挙げられます: ```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) * [https://blog.sicuranext.com/modsecurity-path-confusion-bugs-bypass/](https://blog.sicuranext.com/modsecurity-path-confusion-bugs-bypass/)
{% embed url="https://websec.nl/" %}
ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert) HackTricks をサポートする他の方法: * **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](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グループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** をフォローする。** * **HackTricks** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。