mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-02 09:29:59 +00:00
6.8 KiB
6.8 KiB
代理/WAF保护绕过
☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 YouTube 🎥
- 你在一家网络安全公司工作吗?你想在HackTricks中看到你的公司广告吗?或者你想获得PEASS的最新版本或下载HackTricks的PDF吗?请查看订阅计划!
- 发现我们的独家NFTs收藏品The PEASS Family
- 获取官方PEASS和HackTricks周边产品
- 加入💬 Discord群组或电报群组或关注我在Twitter上的🐦@carlospolopm。
- 通过向hacktricks repo 和hacktricks-cloud repo 提交PR来分享你的黑客技巧。
使用Node.js绕过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
或<tab>
来绕过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规则中使用~
表达式而不是=
表达式,例如:
location ~* ^/admin {
deny all;
}
使用行折叠绕过 AWS WAF ACL
通过使用以下语法,可以绕过 AWS WAF 对 HTTP 头的保护,其中 AWS WAF 不会理解 X-Query 头包含的 SQL 注入有效负载,而后面的节点服务器会理解:
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
参考资料
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- 你在一家网络安全公司工作吗?想要在HackTricks中宣传你的公司吗?或者你想要获取PEASS的最新版本或下载HackTricks的PDF吗?请查看订阅计划!
- 发现我们的独家NFTs收藏品——The PEASS Family
- 获得官方PEASS和HackTricks周边产品
- 加入💬 Discord群组 或 Telegram群组,或者关注我在Twitter上的🐦@carlospolopm。
- 通过向hacktricks repo 和hacktricks-cloud repo 提交PR来分享你的黑客技巧。