## TL;DR
Cookie-based injection only works if the app actually reads a value from the cookie into a query, and many apps only use the cookie as an opaque session key. Sqlmap is telling you its probes changed nothing. Confirm the authorized app uses the cookie value server-side, test with a valid logged-in session, and accept a true negative when the cookie is never queried.

```text
sqlmap "cookie test shows that the Cookie parameter might not be injectable" on authorized app
```

## Use this when
- sqlmap names the Cookie parameter as probably not injectable after its heuristic tests.
- The test was requested because a cookie value looked structured, for example containing an id or a preference that might reach a query.

## Not for this skill when
- You have not yet supplied a valid session, so every request is a logged-out redirect. Fix authentication first.
- Another parameter already shows a confirmed injection. Document that; cookie speculation adds nothing.

## Steps
1. Log in to the authorized app normally and capture a fresh session cookie through the engagement proxy, noting which cookie names exist. Verify: Verify: you can list the cookies and say which one might carry data versus which is the session key.
2. Change the candidate cookie value by hand to a harmless different value, such as a different numeric id, and see whether the page content changes. Verify: Verify: either the content follows the cookie, proving server-side use, or nothing changes.
3. Run sqlmap against the exact authenticated URL, supplying the fresh cookie and naming the cookie parameter to test, at a modest level. Verify: Verify: sqlmap tests the named cookie instead of guessing, and requests return authenticated pages.
4. Cross-check with a time-based probe only if the earlier steps show the cookie reaches the backend, staying inside agreed test intensity. Verify: Verify: timing results are consistent across repeated probes, not a single slow response.
5. Close it out explicitly in the notes: cookie queried and injectable, cookie queried and not injectable, or cookie not queried at all. Verify: Verify: the conclusion cites the manual cookie-change test, not just sqlmap output.

## Variant phrasings
### sqlmap cookie header injection not injectable
The header-specific phrasing.
### session cookie value used in query how to test
The manual confirmation phrasing.
### sqlmap -p cookie parameter heuristic fails
The flag-level phrasing.

Compatibility: Compatibility: current sqlmap with an authenticated session captured from the authorized app; cookie testing needs an explicit parameter selection.

## Why it happens
Most session cookies are looked up, not interpolated: the server treats the whole value as a key into a session store, so no part of it reaches SQL. Sqlmap heuristics detect that its malformed probes produce no error, delay, or content change, and correctly lean negative. Only cookies carrying data the app parses, like a user id or a language code, can be injection points.

## Edge cases / pitfalls
- Editing the session key itself just logs you out; test a data-bearing cookie, not the session identifier, unless there is evidence it is parsed.
- A fresh login can rotate cookie names; stale captured cookies are the top cause of confusing results here.
- A true negative is a useful engagement result; record it so nobody retests the same cookie later.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_68l_glFEuRoJtog8NbHHsQ
