Nginx կոնֆիգուրացիայի խոցելիություն՝ կեղծ կեղծանունների բլոկի կարգավորումներով

Nginx-ով որոշ սերվերներ մնում են խոցելի Nginx Alias ​​​​Traversal տեխնիկայի նկատմամբ, որն առաջարկվել է Blackhat կոնֆերանսում դեռևս 2018 թվականին և թույլ է տալիս մուտք գործել ֆայլեր և գրացուցակներ, որոնք գտնվում են «alias» հրահանգում նշված արմատական ​​գրացուցակից դուրս: Խնդիրն ի հայտ է գալիս միայն «տեղորոշման» բլոկի ներսում տեղադրված «alias» հրահանգով կոնֆիգուրացիաներում, որի պարամետրը չի ավարտվում «/» գրանշանով, մինչդեռ «alias»-ն ավարտվում է «/»-ով։

Nginx կոնֆիգուրացիայի խոցելիություն՝ կեղծ կեղծանունների բլոկի կարգավորումներով

Խնդրի էությունն այն է, որ կեղծանունով դիրեկտիվով բլոկների ֆայլերը տրվում են՝ կցելով պահանջվող ուղին, այն համապատասխանեցնելով տեղորոշման հրահանգի դիմակին և կտրելով այս դիմակում նշված ուղու հատվածը: Վերևում ցուցադրված խոցելի կոնֆիգուրացիայի օրինակի համար հարձակվողը կարող է պահանջել «/img../test.txt» ֆայլը և այս հարցումը կհամապատասխանի «/img» վայրում նշված դիմակին, որից հետո մնացած պոչը «../ test.txt»-ը կկցվի «/var/images/» կեղծանունից ստացված ուղուն և արդյունքում կպահանջվի «/var/images/../test.txt» ֆայլը: Այսպիսով, հարձակվողները կարող են մուտք գործել «/var» գրացուցակի ցանկացած ֆայլ, և ոչ միայն «/var/images/»-ի ֆայլերը, օրինակ՝ nginx log-ը ներբեռնելու համար կարող եք հարցումն ուղարկել «/img../log/: nginx/ access.log»:

Այն կոնֆիգուրացիաներում, որոնցում alias դիրեկտիվի արժեքը չի ավարտվում «/» նիշով (օրինակ՝ «alias /var/images;»), հարձակվողը չի կարող փոխել մայր գրացուցակը, բայց կարող է պահանջել այլ գրացուցակ /var-ում: որի անունը սկսվում է կազմաձևում նշվածով: Օրինակ, «/img.old/test.txt» հարցումով կարող եք մուտք գործել «var/images.old/test.txt» գրացուցակը:

GitHub-ի պահեստների վերլուծությունը ցույց է տվել, որ nginx կոնֆիգուրացիայի սխալները, որոնք հանգեցնում են խնդրի, դեռևս հայտնաբերվում են իրական նախագծերում: Օրինակ, խնդրի առկայությունը հայտնաբերվել է Bitwarden գաղտնաբառերի կառավարչի հետին մասում և կարող է օգտագործվել /etc/bitwarden գրացուցակի բոլոր ֆայլերը մուտք գործելու համար (/attachments-ի հարցումները տրվել են /etc/bitwarden/attachments/-ից), ներառյալ «vault. db» գաղտնաբառերով պահվող տվյալների բազան, վկայականը և տեղեկամատյանները, որոնց համար բավական էր հարցումներ ուղարկել «/attachments../vault.db», «/attachments../identity.pfx», «/attachments» ../logs/api.log» և այլն: .P.

Nginx կոնֆիգուրացիայի խոցելիություն՝ կեղծ կեղծանունների բլոկի կարգավորումներով
Nginx կոնֆիգուրացիայի խոցելիություն՝ կեղծ կեղծանունների բլոկի կարգավորումներով

Մեթոդը նաև աշխատել է Google HPC Toolkit-ի հետ, որտեղ /static հարցումները վերահղվել են դեպի «../hpc-toolkit/community/front-end/website/static/» գրացուցակը: Անձնական բանալիով և հավատարմագրերով տվյալների բազա ձեռք բերելու համար հարձակվողը կարող է ուղարկել «/static../.secret_key» և «/static../db.sqlite3» հարցումները։

Nginx կոնֆիգուրացիայի խոցելիություն՝ կեղծ կեղծանունների բլոկի կարգավորումներով


Source: opennet.ru

Добавить комментарий