From 1e6c2fea747415893ed5c838c5cd3cc7a9f5b6a8 Mon Sep 17 00:00:00 2001 From: Miroslav Stampar Date: Tue, 3 May 2011 10:05:42 +0000 Subject: [PATCH] update regarding warning for --random-agent during connection timeout in connection test phase --- lib/core/common.py | 3 ++- lib/core/enums.py | 4 ++++ lib/request/connect.py | 8 ++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/core/common.py b/lib/core/common.py index 473a7a981..8969e6a65 100644 --- a/lib/core/common.py +++ b/lib/core/common.py @@ -55,6 +55,7 @@ from lib.core.enums import OS from lib.core.enums import PLACE from lib.core.enums import PAYLOAD from lib.core.enums import SORTORDER +from lib.core.enums import WARNFLAGS from lib.core.exception import sqlmapDataException from lib.core.exception import sqlmapFilePathException from lib.core.exception import sqlmapGenericException @@ -661,7 +662,7 @@ def dataToStdout(data, forceOutput=False): warnMsg += "replacement with '?' character. Please, find " warnMsg += "proper character representation inside " warnMsg += "coresponding output files. " - singleTimeLogMessage(warnMsg, logging.WARN, 'dataToStdout') + singleTimeLogMessage(warnMsg, logging.WARN, WARNFLAGS.DATA_TO_STDOUT) sys.stdout.write(output) else: diff --git a/lib/core/enums.py b/lib/core/enums.py index fbc5fcb06..f0366b5a4 100644 --- a/lib/core/enums.py +++ b/lib/core/enums.py @@ -93,6 +93,10 @@ class HTTPHEADER: REFERER = "Referer" USER_AGENT = "User-Agent" +class WARNFLAGS: + RANDOM_AGENT = 'randomAgent' + DATA_TO_STDOUT = 'dataToStdout' + class EXPECTED: BOOL = "bool" INT = "int" diff --git a/lib/request/connect.py b/lib/request/connect.py index f82a338d5..fb32ced03 100644 --- a/lib/request/connect.py +++ b/lib/request/connect.py @@ -8,6 +8,7 @@ See the file 'doc/COPYING' for copying permission """ import httplib +import logging import re import socket import time @@ -29,6 +30,7 @@ from lib.core.common import logHTTPTraffic from lib.core.common import parseTargetUrl from lib.core.common import readInput from lib.core.common import removeReflectiveValues +from lib.core.common import singleTimeLogMessage from lib.core.common import stdev from lib.core.common import urlEncodeCookieValues from lib.core.common import wasLastRequestDelayed @@ -41,6 +43,7 @@ from lib.core.enums import HTTPHEADER from lib.core.enums import HTTPMETHOD from lib.core.enums import NULLCONNECTION from lib.core.enums import PLACE +from lib.core.enums import WARNFLAGS from lib.core.exception import sqlmapConnectionException from lib.core.exception import sqlmapSyntaxException from lib.core.settings import HTTP_SILENT_TIMEOUT @@ -382,6 +385,11 @@ class Connect: warnMsg += ", sqlmap is going to retry the request" logger.critical(warnMsg) + if kb.originalPage is None: + warnMsg = "if the problem persists please try to rerun " + warnMsg += "with the --random-agent switch turned on" + singleTimeLogMessage(warnMsg, logging.WARN, WARNFLAGS.RANDOM_AGENT) + time.sleep(1) socket.setdefaulttimeout(conf.timeout)