23 पॉइंट द्वारा xguru 2024-11-06 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • कुछ समय पहले Samsung डिवाइसों में मौजूद JSON injection vulnerability का उपयोग करके ऐसा attack chain बनाया जा सकता था जो डिवाइस पर code execution तक पहुंच जाता था
  • यह इस बात का सबक हो सकता है कि payload के JSON पर अंधविश्वास करने वाले API का दुरुपयोग कैसे किया जा सकता है

हर चीज़ में "smart" तरीके से injection करना

  • Samsung Smart Hub के मामले में mobile app, hub के साथ remotely communicate करके उससे जुड़ी हर चीज़ को control कर सकता था
  • /credentials endpoint पर malicious POST request भेजकर hub द्वारा remote server से connect होने के लिए इस्तेमाल किए जाने वाले credentials बदले जा सकते थे, और data tampering के ज़रिए यह SQL injection तक ले जा सकता था
  • Samsung जिस json-c library पर निर्भर था, उसे JSON_TOKENER_STRICT=0 के साथ compile किया गया था, जिससे strings को single quotes और double quotes दोनों से define किया जा सकता था
  • इससे attacker, hub के internal sqlite database में custom columns बना सकता था
  • camera table में बहुत लंबा ROP chain inject करने के बाद /cameras endpoint पर DELETE भेजकर video-core process को data पढ़ने की कोशिश में crash कराया जा सकता था, जिससे पारंपरिक stack-based buffer overflow हो सकता था
  • यहां सीखी गई बात यह थी: JSON injection → SQL injection → buffer overflow → ROP = पूर्ण नियंत्रण

JSON injection क्या है?

  • JSON injection एक ऐसी vulnerability है जिसमें malicious data को JSON stream में insert करके application के behavior को बदला जा सकता है या unintended actions trigger किए जा सकते हैं
  • server-side JSON injection तब होता है जब untrusted sources का data server पर ठीक से sanitize किए बिना सीधे या परोक्ष रूप से code में इस्तेमाल किया जाता है

समस्या parser में है

  • आधुनिक web applications और API में request pipeline के भीतर कई parser इस्तेमाल हो सकते हैं, जिनमें से प्रत्येक की अपनी अलग विशेषताएं और vulnerabilities होती हैं
  • parsers के बीच mismatch और multi-stage request processing मिलकर गंभीर vulnerabilities पैदा कर सकते हैं
  • JSON parser के सामने कठिनाई इसलिए आती है क्योंकि आधिकारिक JSON RFC duplicate keys और number representations जैसे विषयों को खुला छोड़ देता है
  • आधिकारिक RFC ही एकमात्र specification नहीं है; ECMAScript, JSON5, HJSON, Binary JSON(BSON) भी मौजूद हैं
  • parsers के बीच interoperability ऐसे security risks उजागर करती है जिनके अस्तित्व के बारे में बहुत से लोगों को पता भी नहीं होता

JSON parser interoperability की security समस्याएं

  • duplicate keys को handle करने के तरीकों में असंगति
  • special characters या comments को handle करने के तरीकों में असंगति
  • JSON (de)serialization में असंगति

JSON का दुरुपयोग कैसे किया जा सकता है?

  • JSON को manipulate करके data इस तरह inject किया जा सकता है कि application ऐसे तरीके से काम करे जिसकी developer ने उम्मीद न की हो
  • जब API infrastructure के भीतर data के components से होकर गुजरने के तरीके को manipulate किया जा सकता है, तो business logic को control करने के अवसर पैदा होते हैं
  • यदि parser input को कैसे process करता है यह समझ लिया जाए, तो parser के behavior का दुरुपयोग करके input validation को bypass किया जा सकता है, ताकि data को मनचाहे तरीके से interpret कराया जा सके

निष्कर्ष

  • Samsung Smart Hub attack सिर्फ एक उदाहरण है कि JSON injection कैसे SQL injection से लेकर remote code execution तक की जटिल vulnerability chain में बदल सकता है
  • मूल कारण अक्सर JSON parser द्वारा data को handle करने के तरीकों में असंगति होती है, खासकर तब जब कई असामान्य parser शामिल हों
  • JSON objects कैसे serialize, deserialize और process किए जाते हैं, इसकी गहराई से जांच करके यह पता लगाया जा सकता है कि ऐसे payload कैसे तैयार किए जाएं जो sanitization filters को bypass करें और business logic को प्रभावित करें
  • चूंकि API आधुनिक applications की आधारशिला बने हुए हैं, इसलिए यह सुनिश्चित करना पहले से कहीं अधिक महत्वपूर्ण है कि वे data को जिस तरह handle करते हैं वह सुरक्षित हो

1 टिप्पणियां

 
yangeok 2024-11-08

लगता है कि json body में मिलने वाले डेटा का validation काफ़ी सख्ती से करना पड़ेगा।