منصوبے کے بارے میں

ysoserial ایک پروف آف کانسیپٹ سیکیورٹی ٹول ہے جو غیر محفوظ آبجیکٹ ڈی سیریلائزیشن کا فائدہ اٹھانے والے جاوا پے لوڈز تیار کرنے کے لیے استعمال ہوتا ہے۔ اسے اصل میں AppSecCali 2015 کی گفتگو 'Marshalling Pickles: how deserializing objects will ruin your day' کے حصے کے طور پر جاری کیا گیا تھا، جس میں Apache Commons Collections (3.x اور 4.x)، Spring Beans/Core (4.x) اور Groovy (2.3.x) کے لیے ابتدائی گیجٹ چینز شامل تھیں، اور بعد میں اسے JRE 1.7u21 اور بہت سی دیگر لائبریریوں کے لیے چینز کے ساتھ بڑھایا گیا۔ مرکزی ڈرائیور پروگرام صارف کی مخصوص کمانڈ لیتا ہے، اسے صارف کی مخصوص گیجٹ چین میں لپیٹتا ہے — عام جاوا لائبریریوں میں پائی جانے والی کلاسوں سے بنی پراپرٹی پر مبنی پروگرامنگ ترتیب — اور نتیجے میں آنے والی آبجیکٹس کو stdout پر سیریلائز کرتا ہے۔ جب کوئی ایپلیکیشن جس کے کلاس پاتھ پر مطلوبہ گیجٹس موجود ہوں، اس ڈیٹا کو غیر محفوظ طریقے سے ڈی سیریلائز کرتی ہے، تو چین خود بخود متحرک ہو جاتی ہے اور کمانڈ ایپلیکیشن ہوسٹ پر عمل ہوتی ہے۔ پروجیکٹ اس بات پر زور دیتا ہے کہ خطرہ اس ایپلیکیشن میں ہے جو غیر محفوظ ڈی سیریلائزیشن انجام دیتی ہے، نہ کہ کلاس پاتھ پر گیجٹ لائبریریوں کی موجودگی میں۔ اس ٹول کے ساتھ تیس سے زیادہ پے لوڈ اقسام شامل ہیں جنہیں متعدد محققین نے فراہم کیا ہے۔ ان میں سات CommonsCollections مختلف قسمیں شامل ہیں جو commons-collections 3.x اور commons-collections4 4.x پر محیط ہیں، ساتھ ہی CommonsBeanutils، Spring (دو مختلف قسمیں)، Groovy، Hibernate (دو مختلف قسمیں)، C3P0، BeanShell، Jython، Clojure، Mozilla Rhino (دو مختلف قسمیں)، ROME، JSON-lib، MyFaces (دو مختلف قسمیں)، Click، FileUpload، Vaadin، Wicket، Javassist/Weld، JBoss interceptors، AspectJWeaver، Jdk7u21، URLDNS (جس میں کوئی انحصار درج نہیں ہے)، اور JRMPClient/JRMPListener کے لیے چینز شامل ہیں۔ ایک منسلک مددگار، ysoserial.exploit.RMIRegistryExploit، مثالوں میں RMI رجسٹری تک پے لوڈ پہنچانے کے لیے دکھایا گیا ہے۔ استعمال ایک ہی کمانڈ ہے، مثال کے طور پر: java -jar ysoserial.jar CommonsCollections1 calc.exe۔ تیار کردہ پے لوڈ کو براہ راست ہدف تک پائپ کیا جا سکتا ہے یا فائل میں محفوظ کیا جا سکتا ہے، جیسا کہ README میں netcat کے ساتھ دکھایا گیا ہے۔ پہلے سے تیار شدہ jars GitHub ریلیز سے دستیاب ہیں، اور پروجیکٹ کو Java 1.7+ اور Maven 3.x+ کے ساتھ 'mvn clean package -DskipTests' استعمال کرکے سورس سے بنایا جا سکتا ہے۔ مینٹینرز واضح طور پر بیان کرتے ہیں کہ یہ سافٹ ویئر خالصتاً تعلیمی تحقیق اور مؤثر دفاعی تکنیکوں کی ترقی کے لیے بنایا گیا ہے، اور یہ کہ اس کا مقصد سسٹمز پر حملہ کرنا نہیں ہے سوائے ان صورتوں کے جہاں واضح طور پر اجازت ہو؛ صارفین سے کہا جاتا ہے کہ وہ اسے ذمہ داری سے استعمال کریں۔ README میں حوالہ دیے گئے متعلقہ پروجیکٹس میں marshalsec (ایک ہم منصب پروجیکٹ جو دیگر جاوا ڈی سیریلائزیشن فارمیٹس اور لائبریریوں کا احاطہ کرتا ہے)، ysoserial.net (.NET مساوی)، اور Java-Deserialization-Cheat-Sheet شامل ہیں، جو متعلقہ خطرات، ٹولز اور رپورٹس جمع کرتا ہے۔