NoSQLi
No SQL injection.
NoSQL databases store and retrieve data in a format other than traditional SQL relational tables. They use a wide range of query languages instead of a universal standard like SQL, and have fewer relational constraints.
Types:
Syntax injection
Operator injection
Detection
MongoDB may ignore all characters after a null
character.
Operator Injection
You may be able to inject query operators to manipulate NoSQL queries.
$eq
Equal
$ne
Not equal
$gt
Greater than
$in
Documents that matches all of the values specified in an array.
$where
Documents that match a JavaScript expression.
$exists
Documents that have the specified field.
$regex
Documents where values match a specified regex.
{"username":"wiener"}
->{"username":{"$ne":"invalid"}} username=wiener
->username[$ne]=invalid
You can try with (or use the Content Type Converter extension):
Convert the request method from
GET
toPOST
.Change the
Content-Type
header toapplication/json
.Add JSON to the message body.
Inject query operators in the JSON.
ex.
Extra
If the query uses the $where
operator, you can attempt to inject JavaScript functions into this query so that it returns sensitive data.
You may be able to use the keys()
method to extract the name of data fields.
Or other operator
You can also try with time delay
Last updated
Was this helpful?