feat: Add NoSQL injection vulnerability guide#168
Open
timlzh wants to merge 1 commit intousestrix:mainfrom
Open
feat: Add NoSQL injection vulnerability guide#168timlzh wants to merge 1 commit intousestrix:mainfrom
timlzh wants to merge 1 commit intousestrix:mainfrom
Conversation
This file provides a comprehensive guide on NoSQL injection vulnerabilities, detailing methodologies, injection surfaces, detection channels, and prevention strategies across various NoSQL databases.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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