የNginx ውቅር ተጋላጭነት ከተሳሳተ የአግድ ቅንብሮች ጋር

አንዳንድ nginx ያላቸው አገልጋዮች እ.ኤ.አ. በ 2018 በብላክሃት ኮንፈረንስ ላይ ለቀረበው ለ Nginx Alias ​​​​Traversal ቴክኒክ ተጋላጭ ሆነው ይቆያሉ እና በ “ተለዋጭ ስም” መመሪያ ውስጥ ከተጠቀሰው ስርወ ማውጫ ውጭ የሚገኙትን ፋይሎች እና ማውጫዎች ማግኘት ይችላሉ። ችግሩ የሚታየው በ"ቦታ" ብሎክ ውስጥ በተቀመጠው የ"ቅፅል መመሪያ" ውቅሮች ውስጥ ብቻ ሲሆን ግቤት በ"/" ቁምፊ የማያልቅ ሲሆን "ተለዋጭ ስም" በ"/" ያበቃል።

የNginx ውቅር ተጋላጭነት ከተሳሳተ የአግድ ቅንብሮች ጋር

የችግሩ ፍሬ ነገር ለብሎኮች በቅፅል መመሪያ የተጠየቀውን መንገድ በማያያዝ፣ ከቦታው መመሪያው ላይ ካለው ጭንብል ጋር በማዛመድ እና በዚህ ጭንብል ውስጥ የተገለጸውን የመንገዱን ክፍል ከቆረጠ በኋላ ነው። ከላይ ለሚታየው የተጋላጭ ውቅረት ምሳሌ አንድ አጥቂ ፋይሉን "/img../test.txt" ሊጠይቅ ይችላል እና ይህ ጥያቄ በቦታ "/ img" ላይ ከተጠቀሰው ጭንብል ጋር ይዛመዳል, ከዚያ የቀረው ጅራት "../ test.txt" ከተለዋዋጭ መመሪያ "/var/images/" መንገዱ ጋር ይያያዛል እናም በዚህ ምክንያት "/var/images/../test.txt" ፋይል ይጠየቃል። ስለዚህ አጥቂዎች በ"/var" ዳይሬክተሩ ውስጥ ያሉ ፋይሎችን ብቻ ሳይሆን በ"/var/images/" ውስጥ ያሉ ፋይሎችን ብቻ ሳይሆን ለምሳሌ የ nginx ሎግ ለማውረድ ጥያቄውን "/img../log/ መላክ ይችላሉ። nginx/ access.log".

የቅጽል መመሪያው ዋጋ በ"/" ቁምፊ (ለምሳሌ "ተለዋጭ ስም / var/images;") በማያበቃ ውቅሮች ውስጥ አጥቂው ወደ ወላጅ ማውጫ መቀየር አይችልም፣ ነገር ግን በ/var ውስጥ ሌላ ማውጫ መጠየቅ ይችላል። ስሙ የሚጀምረው በማዋቀሪያው ውስጥ በተጠቀሰው ነው። ለምሳሌ "/img.old/test.txt" በመጠየቅ ማውጫ "var/images.old/test.txt" ማግኘት ትችላለህ።

በ GitHub ላይ ያሉ የመረጃ ቋቶች ትንታኔ እንደሚያሳየው በ nginx ውቅር ውስጥ ወደ ችግሩ የሚያመሩ ስህተቶች አሁንም በእውነተኛ ፕሮጀክቶች ውስጥ ይገኛሉ. ለምሳሌ፣ የችግር መኖር በBitwarden የይለፍ ቃል አቀናባሪ ጀርባ ላይ ተለይቷል እና በ /etc/bitwarden ማውጫ ውስጥ ያሉትን ሁሉንም ፋይሎች ለመድረስ ጥቅም ላይ ሊውል ይችላል (የማያያዝ ጥያቄዎች ከ / ወዘተ/ ቢትዋርደን/አባሪዎች/ ተሰጥተዋል)። እዚያ የተከማቸ የውሂብ ጎታ በይለፍ ቃል "vault. db"፣ ሰርተፍኬት እና ምዝግብ ማስታወሻዎች፣ ለዚህም ጥያቄዎችን "/attachments../vault.db", "/attachments../identity.pfx", "/attachments ለመላክ በቂ ነበር. ../logs/api.log፣ ወዘተ. ፒ.

የNginx ውቅር ተጋላጭነት ከተሳሳተ የአግድ ቅንብሮች ጋር
የNginx ውቅር ተጋላጭነት ከተሳሳተ የአግድ ቅንብሮች ጋር

ዘዴው ከGoogle HPC Toolkit ጋር አብሮ ሰርቷል፣ይህም/ቋሚ ጥያቄዎች ወደ "../hpc-toolkit/community/front-end/website/static/" ማውጫ ተዘዋውረዋል። ከግል ቁልፍ እና ምስክርነቶች ጋር የውሂብ ጎታ ለማግኘት አጥቂ "/static../.secret_key" እና "/static../db.sqlite3" መጠይቆችን መላክ ይችላል።

የNginx ውቅር ተጋላጭነት ከተሳሳተ የአግድ ቅንብሮች ጋር


ምንጭ: opennet.ru

አስተያየት ያክሉ