feat: Add NoSQL injection vulnerability guide #168
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds a detailed NoSQL injection detection guide following the existing template structure.
Changes
✅ Added
nosql_injection.jinja- NoSQL Operator injection, JavaScript execution, ODM exploitation, blind extraction techniquesTesting
Guide follows the established format and includes:
Examples
MongoDB Operator Injection
Authentication bypass:
{"username": {"$ne": ""}, "password": {"$ne": ""}}Regex extraction:
{"password": {"$regex": "^a.*"}}for character-by-character enumerationQuery string notation:
?username=admin&password[$ne]=wrongpassJavaScript Execution
$where clause:
{"$where": "sleep(5000)"}for timing-based detection$functionoperator (MongoDB 4.4+): Server-side JS in aggregation pipelinesObject.keys()enumeration for field discoveryBlind Extraction
Binary search via regex ranges:
^[a-m]vs^[n-z]Timing oracle: conditional sleep in
$whereclausesReDoS patterns:
{"$regex": "^(a+)+$"}for pathological backtrackingWAF Bypasses
URL encoding:
%24neinstead of$neJSON unicode escapes:
\u0024neOperator alternatives:
$notinstead of$ne,$ninfor negationFramework-Specific Issues
Mongoose:
find(req.body)without sanitizationPyMongo: Unsanitized dictionaries from JSON input
GraphQL + MongoDB: Operator injection via variables