diff --git a/lib/controller/controller.py b/lib/controller/controller.py index 298fca106..27708c867 100644 --- a/lib/controller/controller.py +++ b/lib/controller/controller.py @@ -158,6 +158,9 @@ def _formatInjection(inj): return data def _showInjections(): + if conf.wizard and kb.wizardMode: + kb.wizardMode = False + if kb.testQueryCount > 0: header = "sqlmap identified the following injection point(s) with " header += "a total of %d HTTP(s) requests" % kb.testQueryCount diff --git a/lib/core/common.py b/lib/core/common.py index 5b74d90ee..6b36d1ec0 100644 --- a/lib/core/common.py +++ b/lib/core/common.py @@ -912,7 +912,7 @@ def dataToStdout(data, forceOutput=False, bold=False, content_type=None, status= message = "" if not kb.get("threadException"): - if forceOutput or not getCurrentThreadData().disableStdOut: + if forceOutput or not (getCurrentThreadData().disableStdOut or kb.get("wizardMode")): if kb.get("multiThreadMode"): logging._acquireLock() @@ -1018,7 +1018,7 @@ def readInput(message, default=None, checkBatch=True, boolean=False): retVal = "%s,%s" % (retVal, getUnicode(item, UNICODE_ENCODING)) if retVal: - dataToStdout("\r%s%s\n" % (message, retVal), forceOutput=True, bold=True) + dataToStdout("\r%s%s\n" % (message, retVal), forceOutput=not kb.wizardMode, bold=True) debugMsg = "used the given answer" logger.debug(debugMsg) @@ -1032,7 +1032,7 @@ def readInput(message, default=None, checkBatch=True, boolean=False): else: options = unicode() - dataToStdout("\r%s%s\n" % (message, options), forceOutput=True, bold=True) + dataToStdout("\r%s%s\n" % (message, options), forceOutput=not kb.wizardMode, bold=True) debugMsg = "used the default behavior, running in batch mode" logger.debug(debugMsg) @@ -1045,7 +1045,7 @@ def readInput(message, default=None, checkBatch=True, boolean=False): if conf.get("beep"): beep() - dataToStdout("\r%s" % message, forceOutput=True, bold=True) + dataToStdout("\r%s" % message, forceOutput=not kb.wizardMode, bold=True) kb.prependFlag = False retVal = raw_input().strip() or default diff --git a/lib/core/option.py b/lib/core/option.py index d2dc4eaf1..0cfc3caa1 100644 --- a/lib/core/option.py +++ b/lib/core/option.py @@ -2038,6 +2038,7 @@ def _setKnowledgeBaseAttributes(flushAll=True): kb.uChar = NULL kb.unionDuplicates = False kb.wafSpecificResponse = None + kb.wizardMode = False kb.xpCmdshellAvailable = False if flushAll: @@ -2119,6 +2120,8 @@ def _useWizardInterface(): dataToStdout("\nsqlmap is running, please wait..\n\n") + kb.wizardMode = True + def _saveConfig(): """ Saves the command line options to a sqlmap configuration INI file diff --git a/lib/core/settings.py b/lib/core/settings.py index 0c5ed00b3..0f1f3aecd 100644 --- a/lib/core/settings.py +++ b/lib/core/settings.py @@ -19,7 +19,7 @@ from lib.core.enums import DBMS_DIRECTORY_NAME from lib.core.enums import OS # sqlmap version (...) -VERSION = "1.2.2.18" +VERSION = "1.2.2.19" TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable" TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34} VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE) diff --git a/txt/checksum.md5 b/txt/checksum.md5 index aca0595c9..721d36e69 100644 --- a/txt/checksum.md5 +++ b/txt/checksum.md5 @@ -22,12 +22,12 @@ c88d66597f4aab719bde4542b0a1a6e0 extra/shutils/regressiontest.py b3e60ea4e18a65c48515d04aab28ff68 extra/sqlharvest/sqlharvest.py 0f581182871148b0456a691ae85b04c0 lib/controller/action.py a4605691d340fd05d4bfe7dde922da92 lib/controller/checks.py -f0e3f93f6a5275812e4d0c3e3a2a3701 lib/controller/controller.py +9fbd66da9b5cf58bbb8474ccf9252bb7 lib/controller/controller.py a7b0c8e5a18a3abe8803999dcfc4664f lib/controller/handler.py 1e5532ede194ac9c083891c2f02bca93 lib/controller/__init__.py e3a3f5218b2e52dd0afafdfc9fed2002 lib/core/agent.py 86a4703d5474badd8462146510b2c460 lib/core/bigarray.py -62580fa31d29a79aa1e4715e425a147c lib/core/common.py +863d9c00a7684db29005705d6dcc36b9 lib/core/common.py 2a40d5b5997265daa890545d4a4a59b9 lib/core/convert.py 9f87391b6a3395f7f50830b391264f27 lib/core/data.py 72016ea5c994a711a262fd64572a0fcd lib/core/datatype.py @@ -40,13 +40,13 @@ cada93357a7321655927fc9625b3bfec lib/core/exception.py 1e5532ede194ac9c083891c2f02bca93 lib/core/__init__.py 458a194764805cd8312c14ecd4be4d1e lib/core/log.py 63ac6631d75e4f7c20b946a0c06bad33 lib/core/optiondict.py -12f9b2435f4967562770be248cf50843 lib/core/option.py +a377168b153725d3677924040b7861f4 lib/core/option.py 7dadbb9a301d40cc8cd9c7491e99b43d lib/core/profiling.py ffa5f01f39b17c8d73423acca6cfe86a lib/core/readlineng.py 0c3eef46bdbf87e29a3f95f90240d192 lib/core/replication.py a7db43859b61569b601b97f187dd31c5 lib/core/revision.py fcb74fcc9577523524659ec49e2e964b lib/core/session.py -94fc756abb87d40cc78a9a26232b9136 lib/core/settings.py +56665472f845f83f11d802dfc422dce5 lib/core/settings.py d0adc28a38e43a787df4471f7f027413 lib/core/shell.py 63491be462c515a1a3880c27c2acc4a2 lib/core/subprocessng.py 505aaa61e1bba3c3d4567c3e667699e3 lib/core/target.py