غلط عرف بلاک کی ترتیبات کے ساتھ Nginx کنفیگریشن کا خطرہ

nginx کے ساتھ کچھ سرورز Nginx Alias ​​Traversal تکنیک کے لیے خطرے سے دوچار رہتے ہیں، جو 2018 میں بلیک ہیٹ کانفرنس میں تجویز کی گئی تھی اور "عرف" ہدایت میں بیان کردہ روٹ ڈائرکٹری سے باہر واقع فائلوں اور ڈائریکٹریوں تک رسائی کی اجازت دیتی ہے۔ مسئلہ صرف اس ترتیب میں ظاہر ہوتا ہے جس میں "عرف" ہدایت "مقام" بلاک کے اندر رکھی گئی ہے، جس کا پیرامیٹر "/" حرف پر ختم نہیں ہوتا ہے، جبکہ "عرف" "/" کے ساتھ ختم ہوتا ہے۔

غلط عرف بلاک کی ترتیبات کے ساتھ 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 کنفیگریشن میں غلطیاں جو مسئلہ کا باعث بنتی ہیں وہ اب بھی حقیقی پروجیکٹس میں پائی جاتی ہیں۔ مثال کے طور پر، بٹ وارڈن پاس ورڈ مینیجر کے پس منظر میں کسی مسئلے کی موجودگی کی نشاندہی کی گئی تھی اور اسے /etc/bitwarden ڈائریکٹری میں موجود تمام فائلوں تک رسائی کے لیے استعمال کیا جا سکتا ہے (/etc/bitwarden/attachments/ سے /attachments کے لیے درخواستیں جاری کی گئی تھیں)، پاس ورڈز "vault. db"، سرٹیفکیٹ اور لاگز کے ساتھ ذخیرہ کردہ ڈیٹا بیس سمیت، جس کے لیے درخواستیں بھیجنا کافی تھا "/attachments../vault.db"، "/attachments../identity.pfx"، "/attachments ../logs/api.log" وغیرہ .P

غلط عرف بلاک کی ترتیبات کے ساتھ Nginx کنفیگریشن کا خطرہ
غلط عرف بلاک کی ترتیبات کے ساتھ Nginx کنفیگریشن کا خطرہ

اس طریقہ کار نے Google HPC ٹول کٹ کے ساتھ بھی کام کیا، جہاں /static درخواستوں کو "../hpc-toolkit/community/front-end/website/static/" ڈائریکٹری میں بھیج دیا گیا تھا۔ نجی کلید اور اسناد کے ساتھ ڈیٹا بیس حاصل کرنے کے لیے، حملہ آور "/static../.secret_key" اور "/static../db.sqlite3" کے سوالات بھیج سکتا ہے۔

غلط عرف بلاک کی ترتیبات کے ساتھ Nginx کنفیگریشن کا خطرہ


ماخذ: opennet.ru

نیا تبصرہ شامل کریں