sqlmapproject/sqlmap · error · SqlmapNotVulnerableException
all tested parameters do not appear to be injectable.
Error message
all tested parameters do not appear to be injectable.
What it means
Reported at the end of start() when testing ran to completion but no injection was confirmed for any parameter. It is a results summary rather than a crash, and the surrounding code appends advisory hints (e.g. --string/--regexp tuning, WAF/IPS presence) when applicable.
Solutions
- Raise the risk/level (e.g. --level=5 --risk=3) so more injection techniques and parameter locations are tested
- Tune boolean detection with --string/--regexp/--text-only when responses are volatile
- If a WAF/IPS was identified, try evasion via --tamper or adjust the request with --hpp/--delay
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at lib/controller/controller.py:875 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of sqlmapproject/sqlmap@0a35b20e39 (2026-08-26).
Data as JSON: /api/errors/4557f3f5a2c2cdd4.
Report an issue: GitHub.
Appendix: source
Thrown at lib/controller/controller.py:875
elif conf.regexp:
errMsg += " Also, you can try to rerun by providing a "
errMsg += "valid value for option '--regexp' as perhaps the regular "
errMsg += "expression that you have chosen "
errMsg += "does not match exclusively True responses."
if not conf.tamper:
if kb.identifiedWafs:
errMsg += " As a WAF/IPS ('%s') was identified during the run, " % ", ".join(kb.identifiedWafs)
errMsg += "you are strongly advised to retry with option '--tamper' (e.g. '--tamper=space2comment')"
else:
errMsg += " If you suspect that there is some kind of protection mechanism "
errMsg += "involved (e.g. WAF) maybe you could try to use "
errMsg += "option '--tamper' (e.g. '--tamper=space2comment')"
if not conf.randomAgent:
errMsg += " and/or switch '--random-agent'"
raise SqlmapNotVulnerableException(errMsg.rstrip('.'))
else:
# Flush the flag
kb.testMode = False
_saveToResultsFile()
_saveToHashDB()
_showInjections()
_selectInjection()
if kb.injection.place is not None and kb.injection.parameter is not None:
if conf.multipleTargets:
message = "do you want to exploit this SQL injection? [Y/n] "
condition = readInput(message, default='Y', boolean=True)
else:
condition = True
if condition:
try:View on GitHub (pinned to 0a35b20e39)