From 3b6f9945aeccb4ecdd1daa4a9fb834128fe41ad8 Mon Sep 17 00:00:00 2001 From: Miroslav Stampar Date: Fri, 15 Apr 2011 14:15:29 +0000 Subject: [PATCH] minor fix regarding report from nightman@email.de (...from time to time sqlmap lost the connection...) --- lib/techniques/error/use.py | 8 +++++++- lib/techniques/inband/union/use.py | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/techniques/error/use.py b/lib/techniques/error/use.py index 3dd75c507..b023ad3a3 100644 --- a/lib/techniques/error/use.py +++ b/lib/techniques/error/use.py @@ -32,6 +32,7 @@ from lib.core.data import queries from lib.core.enums import DBMS from lib.core.enums import EXPECTED from lib.core.enums import PAYLOAD +from lib.core.exception import sqlmapConnectionException from lib.core.settings import FROM_TABLE from lib.core.settings import MYSQL_ERROR_CHUNK_LENGTH from lib.core.threads import getCurrentThreadData @@ -295,11 +296,16 @@ def errorUse(expression, expected=None, resumeValue=True, dump=False): outputs.append(output) except KeyboardInterrupt: - print warnMsg = "user aborted during enumeration. sqlmap " warnMsg += "will display partial output" logger.warn(warnMsg) + except sqlmapConnectionException, e: + errMsg = "connection exception detected. sqlmap " + errMsg += "will display partial output" + errMsg += "'%s'" % e + logger.critical(errMsg) + if not outputs: outputs = __errorFields(expression, expressionFields, expressionFieldsList) diff --git a/lib/techniques/inband/union/use.py b/lib/techniques/inband/union/use.py index 1f758b40f..4976f0353 100644 --- a/lib/techniques/inband/union/use.py +++ b/lib/techniques/inband/union/use.py @@ -31,6 +31,7 @@ from lib.core.data import logger from lib.core.data import queries from lib.core.enums import DBMS from lib.core.enums import PAYLOAD +from lib.core.exception import sqlmapConnectionException from lib.core.exception import sqlmapSyntaxException from lib.core.settings import FROM_TABLE from lib.core.unescaper import unescaper @@ -263,11 +264,16 @@ def unionUse(expression, unpack=True, dump=False): clearConsoleLine(True) except KeyboardInterrupt: - print warnMsg = "user aborted during enumeration. sqlmap " warnMsg += "will display partial output" logger.warn(warnMsg) + except sqlmapConnectionException, e: + errMsg = "connection exception detected. sqlmap " + errMsg += "will display partial output" + errMsg += "'%s'" % e + logger.critical(errMsg) + if not value: value = __oneShotUnionUse(expression, unpack)