Proxy / WAF Protections Bypass
Bypassovanje Nginx ACL pravila pomoću manipulacije putanjom
Tehnike iz ovog istraživanja.
Primer Nginx pravila:
NodeJS - Express
Flask
Spring Boot
PHP-FPM
Konfiguracija Nginx FPM:
Nginx je konfigurisan da blokira pristup /admin.php
ali je moguće zaobići to pristupanjem /admin.php/index.php
.
Kako sprečiti
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:
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
Last updated