Gwendid cyfluniad Nginx gyda gosodiadau bloc alias anghywir

Mae rhai gweinyddwyr Nginx yn parhau i fod yn agored i dechneg Nginx Alias ​​​​Traversal, a gynigiwyd yng nghynhadledd Blackhat yn ôl yn 2018 ac sy'n caniatáu mynediad i ffeiliau a chyfeiriaduron sydd wedi'u lleoli y tu allan i'r cyfeiriadur gwraidd a nodir yn y gyfarwyddeb “alias”. Dim ond mewn ffurfweddiadau y mae'r broblem yn ymddangos gyda chyfarwyddeb "alias" wedi'i gosod y tu mewn i floc "lleoliad" nad yw ei baramedr yn gorffen gyda nod "/", tra bod "alias" yn gorffen gyda "/".

Gwendid cyfluniad Nginx gyda gosodiadau bloc alias anghywir

Hanfod y broblem yw bod ffeiliau blociau gyda'r cyfeiriad arall yn cael eu gwasanaethu trwy atodi'r llwybr y gofynnwyd amdano, ar ôl ei gymharu â'r mwgwd o'r gyfarwyddeb lleoliad a thorri allan y rhan o'r llwybr a nodir yn y mwgwd hwn. Ar gyfer yr enghraifft o ffurfweddiad bregus a ddangosir uchod, gall ymosodwr ofyn am y ffeil “/img../test.txt” a bydd y cais hwn yn dod o dan y mwgwd “/img” a nodir yn y lleoliad, ac ar ôl hynny bydd y gynffon sy'n weddill “.. Bydd /test.txt” yn cael ei atodi i'r llwybr o'r gyfarwyddeb alias “/var/images/” ac yn y pen draw bydd yn gofyn am y ffeil “/var/images/../test.txt”. Felly, gall ymosodwyr gael mynediad i unrhyw ffeiliau yn y cyfeiriadur “/ var”, ac nid dim ond ffeiliau yn “/var/images/”, er enghraifft, i lawrlwytho'r log nginx, gallwch anfon y cais “/ img../log/ nginx/ access.log".

Mewn ffurfweddiadau lle nad yw gwerth y gyfarwyddeb alias yn gorffen gyda nod "/" (er enghraifft, "alias / var / images;"), ni all yr ymosodwr newid i'r cyfeiriadur rhiant, ond gall ofyn am gyfeiriadur arall yn /var y mae ei enw yn dechrau gyda'r un a nodir yn y ffurfweddiad. Er enghraifft, trwy ofyn am "/img.old/test.txt" gallwch gael mynediad i'r cyfeiriadur "var/images.old/test.txt".

Dangosodd dadansoddiad o ystorfeydd ar GitHub fod gwallau mewn cyfluniad nginx sy'n arwain at y broblem yn dal i ddigwydd mewn prosiectau go iawn. Er enghraifft, canfuwyd y broblem yng nghefn rheolwr cyfrinair Bitwarden a gellid ei defnyddio i gyrchu'r holl ffeiliau yn y cyfeiriadur /etc/bitwarden (/cyhoeddwyd ceisiadau am atodiadau gan /etc/bitwarden/attachments/), gan gynnwys y “ gladdgell . db", tystysgrif a logiau, i'w cael yr oedd yn ddigon i anfon ceisiadau "/attachments../vault.db", "/attachments../identity.pfx", "/attachments../logs/api.log ", etc. .P.

Gwendid cyfluniad Nginx gyda gosodiadau bloc alias anghywir
Gwendid cyfluniad Nginx gyda gosodiadau bloc alias anghywir

Bu'r dull hefyd yn gweithio gyda Google HPC Toolkit, a ailgyfeiriodd / ceisiadau statig i'r cyfeiriadur "../hpc-toolkit/community/front-end/website/static/". I gael cronfa ddata gydag allwedd breifat a manylion, gallai ymosodwr anfon ceisiadau “/static../.secret_key” a “/static../db.sqlite3”.

Gwendid cyfluniad Nginx gyda gosodiadau bloc alias anghywir


Ffynhonnell: opennet.ru

Ychwanegu sylw