Client Side Template Injection (CSTI)
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Deepen your expertise in Mobile Security with 8kSec Academy. Master iOS and Android security through our self-paced courses and get certified:
यह Server Side Template Injection की तरह है लेकिन client में। SSTI आपको remote server पर code चलाने की अनुमति दे सकता है, CSTI आपको victim's browser में मनमाना JavaScript कोड चलाने की अनुमति दे सकता है।
इस कमजोरियों के लिए Testing SSTI के मामले में बहुत similar है, interpreter a template की अपेक्षा करता है और इसे चलाएगा। उदाहरण के लिए, एक payload जैसे {{ 7-7 }}
के साथ, यदि ऐप vulnerable है तो आप 0
देखेंगे, और यदि नहीं, तो आप मूल देखेंगे: {{ 7-7 }}
AngularJS एक व्यापक रूप से उपयोग किया जाने वाला JavaScript framework है जो HTML के साथ attributes के माध्यम से बातचीत करता है जिसे directives के रूप में जाना जाता है, एक उल्लेखनीय ng-app
है। यह directive AngularJS को HTML सामग्री को संसाधित करने की अनुमति देता है, जिससे डबल कर्ली ब्रेसेस के अंदर JavaScript expressions को चलाने की अनुमति मिलती है।
उन परिदृश्यों में जहां उपयोगकर्ता इनपुट को ng-app
के साथ टैग किए गए HTML body में गतिशील रूप से डाला जाता है, मनमाना JavaScript कोड चलाना संभव है। यह इनपुट के भीतर AngularJS की syntax का लाभ उठाकर किया जा सकता है। नीचे उदाहरण दिए गए हैं जो दिखाते हैं कि JavaScript कोड कैसे चलाया जा सकता है:
आप AngularJS में इस भेद्यता का एक बहुत बुनियादी ऑनलाइन उदाहरण http://jsfiddle.net/2zs2yv7o/ और Burp Suite Academy में पा सकते हैं।
Angular 1.6 ने सैंडबॉक्स हटा दिया इसलिए इस संस्करण से एक पेलोड जैसे {{constructor.constructor('alert(1)')()}}
या <input ng-focus=$event.view.alert('XSS')>
काम करना चाहिए।
आप एक कमजोर 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
A really good post on CSTI in VUE can be found in https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets
Credit: Gareth Heyes, Lewis Ardern & PwnFunction
Credit: Mario Heiderich
अधिक VUE पेलोड्स देखें https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected
Payload:
More payloads in https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations
मोबाइल सुरक्षा में अपनी विशेषज्ञता को 8kSec अकादमी के साथ गहरा करें। हमारे आत्म-गति पाठ्यक्रमों के माध्यम से iOS और Android सुरक्षा में महारत हासिल करें और प्रमाणित हों:
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)