sqlmap "no parameter(s) found for testing" on authorized target URL
Fixes sqlmap reporting no parameters found for testing on an authorized target URL. Use when sqlmap starts but finds no testable surface. Not for parameters sqlmap found but declared non-injectable.
TL;DR
Sqlmap found no query params, form fields, or parseable body to test. Name the parameter explicitly with -p, supply POST bodies with --data, mark REST path segments with *, and raise --level for header and cookie parameters.
no parameter(s) found for testingUse this when
- Sqlmap exits early with
no parameter(s) found for testing. - You know the endpoint takes input (forms, JSON body, path IDs).
- The URL itself has no query string.
Not for this skill when
- Sqlmap found parameters but calls them non-injectable. That is a different verdict.
- The endpoint genuinely takes no input. There is nothing to test.
- The input is out of scope. Do not go looking for parameters to test.
Steps
- Inventory the input surface: query string, form fields, JSON body, headers, cookies, path segments. Verify: you can name at least one parameter.
- For POST forms:
sqlmap -u "YOUR_TARGET_HOST/login" --data="user=test&pass=test" -p user. Verify: sqlmap lists the parameter as a candidate. - For JSON APIs:
--data='{"id":1}'with the content type set correctly. Verify: sqlmap parses the body and offers the fields. - For REST paths like
/members/1: mark the spot,sqlmap -u "YOUR_TARGET_HOST/members/1*". Verify: sqlmap tests the marked segment. - For headers and cookies:
--level=2or higher picks them up. Verify: sqlmap reports header/cookie parameters as candidates.
Variant phrasings
sqlmap no parameters found
Compact phrasing.
sqlmap not finding POST parameters
The POST-specific search.
sqlmap test JSON body parameter
The API-oriented search.
Compatibility: sqlmap 1.x. The * injection marker and --data handling are stable across versions.
Why it happens
Sqlmap only auto-discovers classic query-string and form parameters at default level. Modern apps hide input in JSON bodies, path segments, headers, and cookies, which sqlmap will not test unless you point at them.
Edge cases / pitfalls
- A parameter that exists but is never tested because you forgot
-pis the most common miss on multi-param forms. - Testing every header at high level is noisy. Scope to the headers the app actually consumes.
- The
*marker in the wrong place tests the wrong thing. Double-check placement with--verboseoutput. - File upload fields need different handling;
--dataalone will not exercise them.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_zlcolsBAuUgJXBxFgeACsQ