Python میں کمزوری جو سینڈ باکسڈ اسکرپٹس سے سسٹم کمانڈز کو کال کرنے کی اجازت دیتی ہے۔

ازگر 2.7 میں نمودار ہونے والے ایک طویل عرصے سے معلوم بگ کی بنیاد پر پائیتھون کوڈ پر عمل درآمد کے الگ تھلگ نظام کے لیے ایک حل شائع کیا گیا تھا، جس کی شناخت 2012 میں کی گئی تھی اور اسے ابھی تک ازگر 3 میں ٹھیک نہیں کیا گیا ہے۔ یہ بگ پہلے سے ہی کال شروع کرنے کے لیے خصوصی طور پر منسلک Python کوڈ کو استعمال کرنے کی اجازت دیتا ہے۔ ازگر میں آزاد میموری (استعمال کے بعد مفت)۔ ابتدائی طور پر، یہ فرض کیا گیا تھا کہ غلطی سے سیکورٹی کو کوئی خطرہ نہیں ہے اور صرف بہت ہی کم صورتوں میں، عام طور پر مصنوعی طور پر تخلیق کیا جاتا ہے، اسکرپٹ کو غیر معمولی طور پر ختم کرنے کا باعث بن سکتا ہے۔

تخلص kn32 کے تحت ایک سیکورٹی محقق نے اس مسئلے میں دلچسپی لی اور ایک ایسا کام کرنے میں کامیاب ہو گیا جو os.system جیسے طریقوں تک براہ راست رسائی کے بغیر کسی بھی سسٹم کمانڈ کو کال کرنا ممکن بناتا ہے۔ استحصال خالص Python میں لاگو کیا جاتا ہے اور بیرونی لائبریریوں کو درآمد کیے بغیر اور "code.__new__" ہینڈلر کو انسٹال کیے بغیر کام کرتا ہے۔ ہکس میں سے، صرف "builtin.__id__" استعمال ہوتا ہے، جو عام طور پر ممنوع نہیں ہوتا ہے۔ عملی طور پر، مجوزہ کوڈ کو مختلف خدمات اور ماحول میں تنہائی کے طریقہ کار کو نظرانداز کرنے کے لیے استعمال کیا جا سکتا ہے (مثال کے طور پر، سیکھنے کے ماحول، آن لائن شیلز، بلٹ ان ہینڈلرز وغیرہ) جو Python کوڈ کے نفاذ کی اجازت دیتے ہیں، لیکن دستیاب کالوں کو محدود کرتے ہیں۔ اور رسائی کے طریقوں کی اجازت نہ دیں جیسے os.system۔

مجوزہ کوڈ os.system کال کا ایک اینالاگ ہے، جو CPython میں کمزوری کے استحصال کے ذریعے کام کرتا ہے۔ ایکسپلائٹ x3-86 سسٹمز پر Python 64 کے تمام ورژنز کے ساتھ کام کرتا ہے اور Ubuntu 22.04 پر PIE، RELRO اور CET سیکیورٹی موڈز فعال ہونے کے باوجود بھی مستحکم ہے۔ ایگزیکیوٹیبل CPython کوڈ میں فنکشنز میں سے کسی ایک کے ایڈریس کے بارے میں Python کوڈ سے معلومات حاصل کرنے کے لیے کام کم کر دیا گیا ہے۔ اس ایڈریس کی بنیاد پر، میموری میں CPython کے بنیادی ایڈریس اور libc کی بھری ہوئی مثال میں system() فنکشن کا پتہ لگایا جاتا ہے۔ آخر میں، ایک مخصوص سسٹم ایڈریس پر براہ راست چھلانگ "/bin/sh" سٹرنگ کے پہلے دلیل پوائنٹر کے متبادل کے ساتھ شروع کی جاتی ہے۔

Python میں کمزوری جو سینڈ باکسڈ اسکرپٹس سے سسٹم کمانڈز کو کال کرنے کی اجازت دیتی ہے۔


ماخذ: opennet.ru

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