Proxy / WAF Protections Bypass

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Bypassovanje Nginx ACL pravila pomoću manipulacije putanjom

Tehnike iz ovog istraživanja.

Primer Nginx pravila:

location = /admin {
deny all;
}

location = /admin/ {
deny all;
}

NodeJS - Express

Flask

Spring Boot

PHP-FPM

Konfiguracija Nginx FPM:

location = /admin.php {
deny all;
}

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}

Nginx je konfigurisan da blokira pristup /admin.php ali je moguće zaobići to pristupanjem /admin.php/index.php.

Kako sprečiti

location ~* ^/admin {
deny all;
}

Zaobilazak Mod sigurnosnih pravila

Konfuzija putanje

U ovom postu je objašnjeno da ModSecurity v3 (do 3.0.12), nepropisno implementira promenljivu REQUEST_FILENAME koja bi trebalo da sadrži pristupljenu putanju (do početka parametara). To je zato što vrši URL dekodiranje da bi dobilo putanju. Stoga, zahtev poput http://example.com/foo%3f';alert(1);foo= u mod sigurnosti će pretpostaviti da je putanja samo /foo jer se %3f transformiše u ? završavajući URL putanju, ali zapravo putanja koju će server primiti će biti /foo%3f';alert(1);foo=.

Promenljive REQUEST_BASENAME i PATH_INFO takođe su bile pogođene ovim bagom.

Nešto slično se desilo u verziji 2 Mod sigurnosti koja je omogućila zaobilaženje zaštite koja je sprečavala korisnika da pristupi fajlovima sa specifičnim ekstenzijama vezanim za rezervne kopije fajlova (kao što su .bak) jednostavno slanjem tačke URL enkodirane u %2e, na primer: https://example.com/backup%2ebak.

Zaobilazak AWS WAF ACL

Deformisani zaglavlje

Ovo istraživanje pominje da je bilo moguće zaobići AWS WAF pravila primenjena na HTTP zaglavlja slanjem "deformisanog" zaglavlja koje nije bilo pravilno parsirano od strane AWS-a, ali jeste od strane serverske aplikacije.

Na primer, slanjem sledećeg zahteva sa SQL ubacivanjem u zaglavlju 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

Bilo je moguće zaobići AWS WAF jer ne bi razumeo da je sledeća linija deo vrednosti zaglavlja dok je NODEJS server to razumeo (ovo je ispravljeno).

Reference

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated