Vissa servrar med nginx förblir sĂ„rbara för tekniken Nginx Alias Traversal, som presenterades pĂ„ Blackhat-konferensen redan 2018, och som gör det möjligt att fĂ„ Ă„tkomst till filer och kataloger som ligger utanför den angivna rotkatalogen i 'alias'-direktivet. Problemet uppstĂ„r endast i konfigurationer dĂ€r 'alias'-direktivet ligger inom en 'location'-block, och dĂ€r parametern inte avslutas med tecknet 'â', medan 'alias' avslutas med 'â'.

Problemet ligger i att filer för block med 'alias'-direktivet levereras genom att den begĂ€rda sökvĂ€gen bifogas, efter att den matchats med mönstret i 'location'-direktivet och den angivna delen av sökvĂ€gen skĂ€rs bort. I det ovanstĂ„ende exemplet med en sĂ„rbar konfiguration kan en angripare begĂ€ra filen 'âimg..âtest.txt' och denna begĂ€ran kommer att passa in under det angivna mönstret i location 'âimg', varefter den kvarstĂ„ende svansen '..âtest.txt' kommer att bifogas till sökvĂ€gen frĂ„n 'alias'-direktivet 'âvarâimagesâ', och slutligen kommer filen 'âvarâimagesâ..âtest.txt' att begĂ€ras. PĂ„ sĂ„ sĂ€tt kan angripare fĂ„ Ă„tkomst till alla filer i katalogen 'âvar', och inte bara filer i 'âvarâimagesâ', till exempel för att ladda loggar frĂ„n nginx kan en förfrĂ„gan som 'âimg..âlogânginxâaccess.log' skickas.
I konfigurationer dĂ€r vĂ€rdet för 'alias'-direktivet inte avslutas med tecknet 'â' (till exempel 'alias âvarâimages;'), kan angriparen inte navigera till förĂ€ldrakatalogen, men kan begĂ€ra en annan katalog i âvar vars namn börjar med det angivna i konfigurationen. Till exempel kan en begĂ€ran om 'âimg.oldâtest.txt' ge Ă„tkomst till katalogen 'varâimages.oldâtest.txt'.
Analys av repositorier pĂ„ GitHub har visat att de konfigurationsfel som leder till problemet fortfarande förekommer i verkliga projekt. Till exempel har problemet identifierats i backend-delen av lösenordshanteraren Bitwarden, vilket kan ha anvĂ€nts för att fĂ„ Ă„tkomst till alla filer i katalogen âetcâbitwarden (begĂ€rningar om âattachments lĂ€mnades ut frĂ„n âetcâbitwardenâattachmentsâ), inklusive den lagrade databasen med lösenord 'vault.db', certifikatet och loggarna, vars Ă„tkomst bara krĂ€vde att man skickade förfrĂ„gningar som 'âattachments..âvault.db', 'âattachments..âidentity.pfx', 'âattachments..âlogsâapi.log' osv.


Metoden fungerade ocksÄ med Google HPC Toolkit, dÀr förfrÄgningar /static omdirigerades till katalogen «.. /hpc-toolkit /community /front-end /website /static /». För att fÄ en databas med hemlig nyckel och autentiseringsuppgifter kunde angriparen skicka förfrÄgningar «/static.. /.secret_key» och «/static.. /db.sqlite3».

KĂ€lla: opennet.ru
