Client Side Template Injection (CSTI)
सारांश
यह सर्वर साइड टेम्पलेट इंजेक्शन की तरह है लेकिन क्लाइंट में। SSTI आपको रिमोट सर्वर पर कोड को निष्पादित करने की अनुमति देता है, जबकि CSTI आपको पीड़ित के ब्राउज़र में विचित्र JavaScript कोड को निष्पादित करने की अनुमति देता है।
इस वंरूपता के लिए टेस्टिंग SSTI के मामले में बहुत समान है, इंटरप्रीटर को एक टेम्पलेट की उम्मीद होती है और इसे निष्पादित करेगा। उदाहरण के लिए, एक पेलोड जैसे {{ 7-7 }}
के साथ, यदि ऐप वंरूप है, तो आपको 0
दिखाई देगा, और अगर नहीं, तो आपको मूल दिखाई देगा: {{ 7-7 }}
AngularJS
AngularJS एक व्यापक रूप से उपयोग किया जाने वाला JavaScript फ्रेमवर्क है जो डायरेक्टिव्स के रूप में जाने जाने वाले एट्रिब्यूट के माध्यम से HTML के साथ संवाद करता है, जिसमें से एक प्रमुख है ng-app
। यह डायरेक्टिव AngularJS को HTML सामग्री को प्रसंस्करण करने की अनुमति देता है, जिससे डबल कर्ली ब्रेसेज़ के भीतर JavaScript अभिव्यक्तियों को निष्पादित करने की संभावना होती है।
उन स्थितियों में जहां उपयोगकर्ता इनपुट को HTML बॉडी में डायनामिक रूप से डालता है जिसे ng-app
के साथ टैग किया गया है, वहां विचित्र JavaScript कोड को निष्पादित करना संभव है। इसे इनपुट के अंदर AngularJS की वाक्याकारी का लाभ उठाकर प्राप्त किया जा सकता है। नीचे उदाहरण हैं जो दिखाते हैं कि कैसे JavaScript कोड को निष्पादित किया जा सकता है:
आप AngularJS में सुरक्षित नुकसान का एक बहुत मौलिक ऑनलाइन उदाहरण http://jsfiddle.net/2zs2yv7o/ और Burp Suite Academy में देख सकते हैं।
Angular 1.6 ने सैंडबॉक्स को हटा दिया इसलिए इस संस्करण से {{constructor.constructor('alert(1)')()}}
या <input ng-focus=$event.view.alert('XSS')>
जैसा एक पेलोड काम करना चाहिए।
VueJS
आप एक विकल्पीय Vue कार्यान्वयन को https://vue-client-side-template-injection-example.azu.now.sh/ पर पा सकते हैं।
काम करने वाला पेलोड: https://vue-client-side-template-injection-example.azu.now.sh/?name=%7B%7Bthis.constructor.constructor(%27alert(%22foo%22)%27)()%7D%
और यहाँ विकल्पीय उदाहरण का स्रोत कोड है: https://github.com/azu/vue-client-side-template-injection-example
V3
व्यू में सीएसटीआई पर एक बहुत अच्छी पोस्ट https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets पाई जा सकती है।
क्रेडिट: गैरेथ हेय्स, लुईस आर्डर्न और प्वनफंक्शन
V2
Credit: मारियो हाइडेरिच
अधिक VUE payloads देखें https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected
Mavo
Payload:
अधिक payloads इन https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations
ब्रूट-फोर्स डिटेक्शन सूची
Last updated