
शैक्षिक प्रयोगशाला जो जावास्क्रिप्ट एक्सप्रेशन सैंडबॉक्स एस्केप तकनीकों और कई कमजोर सैंडबॉक्स संस्करणों के माध्यम से पैच विकास को प्रदर्शित करती है, जिसमें पेलोड और AST विश्लेषण शामिल हैं।
एक न्यूनतम प्रयोगात्मक वातावरण जो JavaScript एक्सप्रेशन सैंडबॉक्स एस्केप और पैच इवोल्यूशन को प्रदर्शित करता है।
सैंडबॉक्स के कई संस्करणों के माध्यम से, यह निम्नलिखित यात्रा दिखाता है:
पूर्णतः एस्केप करने योग्य → this को पैच करना → फिर destructuring को पैच करना
साथ ही नए बायपास तरीकों को बरकरार रखते हुए, यह वास्तविक दुनिया में कमजोरियों और पैच के बीच की जंग को समझने में मदद करता है।
.
├── payload.js # विभिन्न प्रकार के अटैक payload
├── sandbox_v0.js # मूल असुरक्षित संस्करण
├── sandbox_v1.js # this चेन को ठीक करता है
├── sandbox_v2.js # destructuring को भी ठीक करता है
हम इस वास्तविकता का अनुकरण करना चाहते हैं:
यह चक्र लगातार चलता रहता है।
यह प्रोजेक्ट वास्तव में सुरक्षित VM बनाने के लिए नहीं है। बल्कि यह देखने के लिए है:
हर "उचित प्रतीत होने वाला" पैच, अगली तकनीक से कैसे भेदा जाता है।
npm install vm2 acorn acorn-walk
node sandbox_vX.js
X को 0 / 1 / 2 से बदलें।
payload.js में चार एक्सेस तरीके अंतर्निहित हैं:
| नाम | तकनीक |
|---|---|
| CVE-2025-68613 / this | this के माध्यम से process प्राप्त करना |
| CVE-2026-25049 / destructuring | ऑब्जेक्ट डिस्ट्रक्चरिंग से constructor प्राप्त करना |
| Reflect.get | Reflect API का उपयोग |
| Dynamic Reflect | डायनामिक प्रॉपर्टी एक्सेस |
विशेषताएँ:
परिणाम: सभी payload पास हो जाते हैं।
हमलावर त्योहार मनाते हुए खुश हैं।
परिवर्तन:
"use strict" लागू करना.call(undefined)इसलिए:
this === undefined
हमलावर सिर हिलाता है और दूसरा रास्ता चुनता है।
नया जोड़ा गया:
ObjectPattern की जाँचconstructorब्लैकलिस्ट-आधारित पैचिंग में आमतौर पर होते हैं:
✔ स्पष्ट रास्तों को ठीक करना ✔ कम लागत ✔ आसानी से तैनाती
लेकिन साथ ही:
❌ सीमित रक्षा क्षेत्र ❌ शब्दार्थ रूप से समतुल्य अन्य एक्सेस तरीकों से आसानी से बायपास हो जाना
यही कारण है कि vm2 जैसे सैंडबॉक्स में ऐतिहासिक रूप से बार-बार एस्केप होते रहे हैं।