7.5 KiB
Proxy / WAF Protections Bypass
AWSハッキングをゼロからヒーローまで学ぶ htARTE(HackTricks AWS Red Team Expert)!
HackTricksをサポートする他の方法:
- HackTricksで企業を宣伝したいまたはHackTricksをPDFでダウンロードしたい場合は、SUBSCRIPTION PLANSをチェックしてください!
- 公式PEASS&HackTricksスワッグを入手する
- The PEASS Familyを発見し、独占的なNFTsのコレクションを見つける
- 💬 Discordグループに参加またはtelegramグループに参加またはTwitterでフォローする 🐦 @carlospolopm。**
- ハッキングトリックを共有するために、PRを HackTricks および HackTricks Cloud のGitHubリポジトリに提出してください。
{% embed url="https://websec.nl/" %}
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=
というリクエストは、%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のバイパス
不正なヘッダー
この研究によると、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
参考
- https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies
- 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 をチェックしてください!
- 公式PEASS&HackTricksのグッズを入手する
- The PEASS Family を発見し、独占的な NFTs のコレクションを見つける
- 💬 Discordグループ に参加するか、telegramグループ に参加するか、Twitter 🐦 @carlospolopm をフォローする。**
- HackTricks と HackTricks Cloud のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。