diff --git a/lib/controller/checks.py b/lib/controller/checks.py index 79a262b5a..2055cfd5f 100644 --- a/lib/controller/checks.py +++ b/lib/controller/checks.py @@ -540,6 +540,12 @@ def checkStability(): else: checkDynamicContent(firstPage, secondPage) + if not Request.queryPage(): + warnMsg = "target url is heavily dynamic. retrying. " + logger.warn(warnMsg) + secondPage, _ = Request.queryPage(content=True) + checkDynamicContent(firstPage, secondPage) + if not Request.queryPage(): errMsg = "target url is too dynamic. unable to continue. " errMsg += "consider using other switches (e.g. " diff --git a/lib/core/option.py b/lib/core/option.py index 1b0e00101..dc23269f9 100644 --- a/lib/core/option.py +++ b/lib/core/option.py @@ -1108,7 +1108,6 @@ def __setConfAttributes(): conf.path = None conf.port = None conf.redirectHandled = False - conf.retriesCount = 0 conf.scheme = None #conf.seqMatcher = difflib.SequenceMatcher(lambda x: x in " \t") conf.seqMatcher = difflib.SequenceMatcher(None) @@ -1191,6 +1190,7 @@ def __setKnowledgeBaseAttributes(): kb.proxyAuthHeader = None kb.queryCounter = 0 kb.resumedQueries = {} + kb.retriesCount = 0 kb.tamperFunctions = [] kb.targetUrls = set() kb.testedParams = set() diff --git a/lib/request/connect.py b/lib/request/connect.py index 1af1053bc..18d581090 100644 --- a/lib/request/connect.py +++ b/lib/request/connect.py @@ -208,7 +208,7 @@ class Connect: conf.redirectHandled = True # Reset the number of connection retries - conf.retriesCount = 0 + kb.retriesCount = 0 # Return response object if response: @@ -276,8 +276,8 @@ class Connect: if silent: return None, None - elif conf.retriesCount < conf.retries: - conf.retriesCount += 1 + elif kb.retriesCount < conf.retries: + kb.retriesCount += 1 warnMsg += ", sqlmap is going to retry the request" logger.critical(warnMsg)