diff --git a/lib/controller/checks.py b/lib/controller/checks.py index fbc48c02c..75d84221c 100644 --- a/lib/controller/checks.py +++ b/lib/controller/checks.py @@ -292,7 +292,9 @@ def checkStability(): checkDynamicContent(firstPage, secondPage) if not Request.queryPage(): - errMsg = "target url is too dynamic. unable to continue. consider using other switches (e.g. --longest-common, --string, --text-only, etc.)" + errMsg = "target url is too dynamic. unable to continue. " + errMsg += "consider using other switches (e.g. " + errMsg += "--longest-common, --string, --text-only, etc.)" logger.error(errMsg) raise sqlmapSilentQuitException diff --git a/lib/controller/controller.py b/lib/controller/controller.py index 3c1950f58..183ad45f0 100644 --- a/lib/controller/controller.py +++ b/lib/controller/controller.py @@ -296,6 +296,7 @@ def start(): if kb.paramMatchRatio: conf.matchRatio = kb.paramMatchRatio[(kb.injPlace, kb.injParameter)] setMatchRatio() + checkForParenthesis() action() diff --git a/lib/core/optiondict.py b/lib/core/optiondict.py index f5f023009..a4d3eca53 100644 --- a/lib/core/optiondict.py +++ b/lib/core/optiondict.py @@ -65,6 +65,7 @@ optDict = { "eRegexp": "string", "thold": "float", "textOnly": "boolean", + "longestCommon": "boolean", "tamper": "string" }, diff --git a/sqlmap.conf b/sqlmap.conf index 84f06fe8b..4ddd656a5 100644 --- a/sqlmap.conf +++ b/sqlmap.conf @@ -217,6 +217,10 @@ thold = # Valid: True or False textOnly = False +# Compare pages based on their longest common match +# Valid: True or False +longestCommon = False + # Use given script(s) for tampering injection data tamper =