Буруу нэрийн блок тохиргоотой Nginx тохиргооны эмзэг байдал

Nginx-тэй зарим серверүүд нь 2018 онд Blackhat бага хурал дээр санал болгосон Nginx Alias ​​​​Traversal техникт өртөмтгий хэвээр байгаа бөгөөд "алиас" зааварт заасан үндсэн директороос гадуур байрлах файлууд болон лавлахуудад хандах боломжийг олгодог. Асуудал нь зөвхөн "байршил" блок дотор байрлуулсан "алиас" удирдамжтай тохиргоонд гарч ирдэг бөгөөд параметр нь "/" тэмдэгтээр төгсдөггүй, харин "алиас" нь "/" -ээр төгсдөг.

Буруу нэрийн блок тохиргоотой Nginx тохиргооны эмзэг байдал

Асуудлын мөн чанар нь хаягийн удирдамж бүхий блокуудын файлуудыг хүссэн замыг хавсаргаж, байршлын удирдамжийн масктай тааруулж, энэ маскт заасан замын хэсгийг хайчилж авсны дараа өгдөг. Дээр үзүүлсэн эмзэг тохиргооны жишээний хувьд халдагчид "/img../test.txt" файлыг хүсэх боломжтой бөгөөд энэ хүсэлт нь "/img" байршилд заасан масктай таарч, үүний дараа үлдсэн хэсэг нь "../" байна. test.txt"-г "/var/images/" алиас удирдамжийн замд хавсаргах ба үүний үр дүнд "/var/images/../test.txt" файлыг хүсэх болно. Тиймээс халдагчид зөвхөн "/var/images/" доторх файлууд биш "/var" директор доторх дурын файлд хандах боломжтой, жишээлбэл, nginx бүртгэлийг татаж авахын тулд та "/img../log/" хүсэлтийг илгээж болно. nginx/ access.log".

Зохицуулалтын зааврын утга нь "/" тэмдэгтээр төгсдөггүй тохиргоонд (жишээлбэл, "alias /var/images;") халдагчид үндсэн директор руу шилжих боломжгүй, харин /var доторх өөр директор хүсэх боломжтой. нэр нь тохиргоонд заасан нэрээр эхэлсэн. Жишээлбэл, "/img.old/test.txt" хүсэлтээр та "var/images.old/test.txt" лавлах руу хандах боломжтой.

GitHub дээрх репозиторуудад хийсэн дүн шинжилгээ нь nginx тохиргоонд асуудалд хүргэдэг алдаанууд бодит төслүүдэд байсаар байгааг харуулсан. Жишээлбэл, Bitwarden нууц үгийн менежерийн арын хэсэгт асуудал байгаа нь тодорхойлогдсон бөгөөд үүнийг /etc/bitwarden лавлах дахь бүх файлд хандахад ашиглаж болно (хүсэлтийг /хавсралтуудыг /etc/bitwarden/attachments/-аас гаргасан), Тэнд "vault. db", гэрчилгээ, бүртгэлтэй нууц үгээр хадгалагдсан мэдээллийн сан, үүнд "/ хавсралт../vault.db", "/хавсралт../идентификаци.pfx", "/хавсралт илгээхэд хангалттай. ../logs/api.log" гэх мэт. .P.

Буруу нэрийн блок тохиргоотой Nginx тохиргооны эмзэг байдал
Буруу нэрийн блок тохиргоотой Nginx тохиргооны эмзэг байдал

Энэ арга нь мөн Google HPC Toolkit-тэй хамтран ажилласан бөгөөд /статик хүсэлтийг "../hpc-toolkit/community/front-end/website/static/" лавлах руу дахин чиглүүлсэн. Хувийн түлхүүр болон итгэмжлэл бүхий мэдээллийн санг олж авахын тулд халдагчид "/static../.secret_key" болон "/static../db.sqlite3" гэсэн асуултуудыг илгээж болно.

Буруу нэрийн блок тохиргоотой Nginx тохиргооны эмзэг байдал


Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх