diff --git a/lib/controller/checks.py b/lib/controller/checks.py index 1b0e0dd2b..809a0e701 100644 --- a/lib/controller/checks.py +++ b/lib/controller/checks.py @@ -810,7 +810,7 @@ def checkSqlInjection(place, parameter, value): except KeyboardInterrupt: warnMsg = "user aborted during detection phase" - logger.warn(warnMsg) + logger.warning(warnMsg) if conf.multipleTargets: msg = "how do you want to proceed? [ne(X)t target/(s)kip current test/(e)nd detection phase/(n)ext parameter/(c)hange verbosity/(q)uit]" @@ -826,7 +826,7 @@ def checkSqlInjection(place, parameter, value): choice = None while not ((choice or "").isdigit() and 0 <= int(choice) <= 6): if choice: - logger.warn("invalid value") + logger.warning("invalid value") msg = "enter new verbosity level: [0-6] " choice = readInput(msg, default=str(conf.verbose), checkBatch=False) conf.verbose = int(choice) @@ -851,7 +851,7 @@ def checkSqlInjection(place, parameter, value): warnMsg = "in OR boolean-based injection cases, please consider usage " warnMsg += "of switch '--drop-set-cookie' if you experience any " warnMsg += "problems during data retrieval" - logger.warn(warnMsg) + logger.warning(warnMsg) if not checkFalsePositives(injection): if conf.hostname in kb.vulnHosts: @@ -976,7 +976,7 @@ def checkFalsePositives(injection): if not retVal: warnMsg = "false positive or unexploitable injection point detected" - logger.warn(warnMsg) + logger.warning(warnMsg) kb.injection = popValue() @@ -1002,7 +1002,7 @@ def checkSuhosinPatch(injection): warnMsg = "parameter length constraining " warnMsg += "mechanism detected (e.g. Suhosin patch). " warnMsg += "Potential problems in enumeration phase can be expected" - logger.warn(warnMsg) + logger.warning(warnMsg) kb.injection = popValue() @@ -1023,7 +1023,7 @@ def checkFilteredChars(injection): warnMsg += "filtered by the back-end server. There is a strong " warnMsg += "possibility that sqlmap won't be able to properly " warnMsg += "exploit this vulnerability" - logger.warn(warnMsg) + logger.warning(warnMsg) # inference techniques depend on character '>' if not any(_ in injection.data for _ in (PAYLOAD.TECHNIQUE.ERROR, PAYLOAD.TECHNIQUE.UNION, PAYLOAD.TECHNIQUE.QUERY)): @@ -1031,7 +1031,7 @@ def checkFilteredChars(injection): warnMsg = "it appears that the character '>' is " warnMsg += "filtered by the back-end server. You are strongly " warnMsg += "advised to rerun with the '--tamper=between'" - logger.warn(warnMsg) + logger.warning(warnMsg) kb.injection = popValue() @@ -1122,7 +1122,7 @@ def heuristicCheckSqlInjection(place, parameter): else: infoMsg += "not be injectable" - logger.warn(infoMsg) + logger.warning(infoMsg) kb.heuristicMode = True kb.disableHtmlDecoding = True @@ -1230,7 +1230,7 @@ def checkDynamicContent(firstPage, secondPage): if count > conf.retries: warnMsg = "target URL content appears to be too dynamic. " warnMsg += "Switching to '--text-only' " - logger.warn(warnMsg) + logger.warning(warnMsg) conf.textOnly = True return @@ -1288,7 +1288,7 @@ def checkStability(): warnMsg += "injectable parameters are detected, or in case of " warnMsg += "junk results, refer to user's manual paragraph " warnMsg += "'Page comparison'" - logger.warn(warnMsg) + logger.warning(warnMsg) message = "how do you want to proceed? [(C)ontinue/(s)tring/(r)egex/(q)uit] " choice = readInput(message, default='C').upper() @@ -1513,7 +1513,7 @@ def checkConnection(suppressOutput=False): warnMsg = "you provided '%s' as the string to " % conf.string warnMsg += "match, but such a string is not within the target " warnMsg += "URL raw response, sqlmap will carry on anyway" - logger.warn(warnMsg) + logger.warning(warnMsg) if conf.regexp: infoMsg = "testing if the provided regular expression matches within " @@ -1524,7 +1524,7 @@ def checkConnection(suppressOutput=False): warnMsg = "you provided '%s' as the regular expression " % conf.regexp warnMsg += "which does not have any match within the target URL raw response. sqlmap " warnMsg += "will carry on anyway" - logger.warn(warnMsg) + logger.warning(warnMsg) kb.errorIsNone = False @@ -1539,12 +1539,12 @@ def checkConnection(suppressOutput=False): elif wasLastResponseDBMSError(): warnMsg = "there is a DBMS error found in the HTTP response body " warnMsg += "which could interfere with the results of the tests" - logger.warn(warnMsg) + logger.warning(warnMsg) elif wasLastResponseHTTPError(): if getLastRequestHTTPError() not in (conf.ignoreCode or []): warnMsg = "the web server responded with an HTTP error code (%d) " % getLastRequestHTTPError() warnMsg += "which could interfere with the results of the tests" - logger.warn(warnMsg) + logger.warning(warnMsg) else: kb.errorIsNone = True diff --git a/lib/controller/controller.py b/lib/controller/controller.py index c8ab57463..47e7ef865 100644 --- a/lib/controller/controller.py +++ b/lib/controller/controller.py @@ -186,12 +186,12 @@ def _showInjections(): if conf.tamper: warnMsg = "changes made by tampering scripts are not " warnMsg += "included in shown payload content(s)" - logger.warn(warnMsg) + logger.warning(warnMsg) if conf.hpp: warnMsg = "changes made by HTTP parameter pollution are not " warnMsg += "included in shown payload content(s)" - logger.warn(warnMsg) + logger.warning(warnMsg) def _randomFillBlankFields(value): retVal = value @@ -556,7 +556,7 @@ def start(): if not check: warnMsg = "%sparameter '%s' does not appear to be dynamic" % ("%s " % paramType if paramType != parameter else "", parameter) - logger.warn(warnMsg) + logger.warning(warnMsg) if conf.skipStatic: infoMsg = "skipping static %sparameter '%s'" % ("%s " % paramType if paramType != parameter else "", parameter) @@ -612,7 +612,7 @@ def start(): if not injectable: warnMsg = "%sparameter '%s' does not seem to be injectable" % ("%s " % paramType if paramType != parameter else "", parameter) - logger.warn(warnMsg) + logger.warning(warnMsg) finally: if place == PLACE.COOKIE: @@ -709,7 +709,7 @@ def start(): if conf.multipleTargets: warnMsg = "user aborted in multiple target mode" - logger.warn(warnMsg) + logger.warning(warnMsg) message = "do you want to skip to the next target in list? [Y/n/q]" choice = readInput(message, default='Y').upper() @@ -749,7 +749,7 @@ def start(): warnMsg = "it appears that the target " warnMsg += "has a maximum connections " warnMsg += "constraint" - logger.warn(warnMsg) + logger.warning(warnMsg) if kb.dataOutputFlag and not conf.multipleTargets: logger.info("fetched data logged to text files under '%s'" % conf.outputPath) diff --git a/lib/core/common.py b/lib/core/common.py index 0bafbcdf4..45a8dfd40 100644 --- a/lib/core/common.py +++ b/lib/core/common.py @@ -351,7 +351,7 @@ class Backend(object): elif kb.dbms is not None and kb.dbms != dbms: warnMsg = "there appears to be a high probability that " warnMsg += "this could be a false positive case" - logger.warn(warnMsg) + logger.warning(warnMsg) msg = "sqlmap previously fingerprinted back-end DBMS as " msg += "%s. However now it has been fingerprinted " % kb.dbms @@ -371,7 +371,7 @@ class Backend(object): break else: warnMsg = "invalid value" - logger.warn(warnMsg) + logger.warning(warnMsg) elif kb.dbms is None: kb.dbms = aliasToDbmsEnum(dbms) @@ -429,7 +429,7 @@ class Backend(object): break else: warnMsg = "invalid value" - logger.warn(warnMsg) + logger.warning(warnMsg) elif kb.os is None and isinstance(os, six.string_types): kb.os = os.capitalize() @@ -466,7 +466,7 @@ class Backend(object): break else: warnMsg = "invalid value. Valid values are 1 and 2" - logger.warn(warnMsg) + logger.warning(warnMsg) return kb.arch @@ -663,7 +663,7 @@ def paramToDict(place, parameters=None): warnMsg += "chars/statements from manual SQL injection test(s). " warnMsg += "Please, always use only valid parameter values " warnMsg += "so sqlmap could be able to run properly" - logger.warn(warnMsg) + logger.warning(warnMsg) message = "are you really sure that you want to continue (sqlmap could have problems)? [y/N] " @@ -673,7 +673,7 @@ def paramToDict(place, parameters=None): warnMsg = "provided value for parameter '%s' is empty. " % parameter warnMsg += "Please, always use only valid parameter values " warnMsg += "so sqlmap could be able to run properly" - logger.warn(warnMsg) + logger.warning(warnMsg) if place in (PLACE.POST, PLACE.GET): for regex in (r"\A((?:<[^>]+>)+\w+)((?:<[^>]+>)+)\Z", r"\A([^\w]+.*\w+)([^\w]+)\Z"): @@ -738,7 +738,7 @@ def paramToDict(place, parameters=None): if len(conf.testParameter) > 1: warnMsg = "provided parameters '%s' " % paramStr warnMsg += "are not inside the %s" % place - logger.warn(warnMsg) + logger.warning(warnMsg) else: parameter = conf.testParameter[0] @@ -763,7 +763,7 @@ def paramToDict(place, parameters=None): if len(decoded) > MIN_ENCODED_LEN_CHECK and all(_ in getBytes(string.printable) for _ in decoded): warnMsg = "provided parameter '%s' " % parameter warnMsg += "appears to be '%s' encoded" % encoding - logger.warn(warnMsg) + logger.warning(warnMsg) break except: pass @@ -814,7 +814,7 @@ def getManualDirectories(): else: warnMsg = "unable to automatically retrieve the web server " warnMsg += "document root" - logger.warn(warnMsg) + logger.warning(warnMsg) directories = [] @@ -900,7 +900,7 @@ def getAutoDirectories(): retVal.add(directory) else: warnMsg = "unable to automatically parse any web server path" - logger.warn(warnMsg) + logger.warning(warnMsg) return list(retVal) @@ -1637,7 +1637,7 @@ def parseTargetDirect(): if remote: warnMsg = "direct connection over the network for " warnMsg += "%s DBMS is not supported" % dbmsName - logger.warn(warnMsg) + logger.warning(warnMsg) conf.hostname = "localhost" conf.port = 0 @@ -1900,7 +1900,7 @@ def parseUnionPage(page): if re.search(r"(?si)\A%s.*%s\Z" % (kb.chars.start, kb.chars.stop), page): if len(page) > LARGE_OUTPUT_THRESHOLD: warnMsg = "large output detected. This might take a while" - logger.warn(warnMsg) + logger.warning(warnMsg) data = BigArray() keys = set() @@ -2789,7 +2789,7 @@ def wasLastResponseDelayed(): if len(kb.responseTimes[kb.responseTimeMode]) < MIN_TIME_RESPONSES: warnMsg = "time-based standard deviation method used on a model " warnMsg += "with less than %d response times" % MIN_TIME_RESPONSES - logger.warn(warnMsg) + logger.warning(warnMsg) lowerStdLimit = average(kb.responseTimes[kb.responseTimeMode]) + TIME_STDEV_COEFF * deviation retVal = (threadData.lastQueryDuration >= max(MIN_VALID_DELAYED_RESPONSE, lowerStdLimit)) @@ -3593,7 +3593,7 @@ def initTechnique(technique=None): else: warnMsg = "there is no injection data available for technique " warnMsg += "'%s'" % enumValueToNameLookup(PAYLOAD.TECHNIQUE, technique) - logger.warn(warnMsg) + logger.warning(warnMsg) except SqlmapDataException: errMsg = "missing data in old session file(s). " @@ -3744,7 +3744,7 @@ def showHttpErrorCodes(): if kb.httpErrorCodes: warnMsg = "HTTP error codes detected during run:\n" warnMsg += ", ".join("%d (%s) - %d times" % (code, _http_client.responses[code] if code in _http_client.responses else '?', count) for code, count in kb.httpErrorCodes.items()) - logger.warn(warnMsg) + logger.warning(warnMsg) if any((str(_).startswith('4') or str(_).startswith('5')) and _ != _http_client.INTERNAL_SERVER_ERROR and _ != kb.originalCode for _ in kb.httpErrorCodes): msg = "too many 4xx and/or 5xx HTTP error codes " msg += "could mean that some kind of protection is involved (e.g. WAF)" @@ -3972,7 +3972,7 @@ def createGithubIssue(errMsg, excMsg): if closed: warnMsg += " and resolved. Please update to the latest " warnMsg += "development version from official GitHub repository at '%s'" % GIT_PAGE - logger.warn(warnMsg) + logger.warning(warnMsg) return except: pass @@ -4002,7 +4002,7 @@ def createGithubIssue(errMsg, excMsg): warnMsg += " ('%s')" % _excMsg if "Unauthorized" in warnMsg: warnMsg += ". Please update to the latest revision" - logger.warn(warnMsg) + logger.warning(warnMsg) def maskSensitiveData(msg): """ @@ -4395,7 +4395,7 @@ def expandMnemonics(mnemonics, parser, args): if not options: warnMsg = "mnemonic '%s' can't be resolved" % name - logger.warn(warnMsg) + logger.warning(warnMsg) elif name in options: found = name debugMsg = "mnemonic '%s' resolved to %s). " % (name, found) @@ -4404,7 +4404,7 @@ def expandMnemonics(mnemonics, parser, args): found = sorted(options.keys(), key=len)[0] warnMsg = "detected ambiguity (mnemonic '%s' can be resolved to any of: %s). " % (name, ", ".join("'%s'" % key for key in options)) warnMsg += "Resolved to shortest of those ('%s')" % found - logger.warn(warnMsg) + logger.warning(warnMsg) if found: found = options[found] @@ -4810,7 +4810,7 @@ def checkOldOptions(args): warnMsg = "switch/option '%s' is deprecated" % _ if DEPRECATED_OPTIONS[_]: warnMsg += " (hint: %s)" % DEPRECATED_OPTIONS[_] - logger.warn(warnMsg) + logger.warning(warnMsg) def checkSystemEncoding(): """ @@ -4828,7 +4828,7 @@ def checkSystemEncoding(): logger.critical(errMsg) warnMsg = "temporary switching to charset 'cp1256'" - logger.warn(warnMsg) + logger.warning(warnMsg) _reload_module(sys) sys.setdefaultencoding("cp1256") diff --git a/lib/core/dump.py b/lib/core/dump.py index 79a7976f2..d155ebae1 100644 --- a/lib/core/dump.py +++ b/lib/core/dump.py @@ -421,7 +421,7 @@ class Dump(object): tempDir = tempfile.mkdtemp(prefix="sqlmapdb") warnMsg = "currently unable to use regular dump directory. " warnMsg += "Using temporary directory '%s' instead" % tempDir - logger.warn(warnMsg) + logger.warning(warnMsg) dumpDbPath = tempDir @@ -445,7 +445,7 @@ class Dump(object): warnMsg = "unable to create dump directory " warnMsg += "'%s' (%s). " % (dumpDbPath, getSafeExString(ex)) warnMsg += "Using temporary directory '%s' instead" % tempDir - logger.warn(warnMsg) + logger.warning(warnMsg) dumpDbPath = tempDir @@ -624,7 +624,7 @@ class Dump(object): _ = re.sub(r"[^\w]", UNSAFE_DUMP_FILEPATH_REPLACEMENT, normalizeUnicode(unsafeSQLIdentificatorNaming(column))) filepath = os.path.join(dumpDbPath, "%s-%d.bin" % (_, randomInt(8))) warnMsg = "writing binary ('%s') content to file '%s' " % (mimetype, filepath) - logger.warn(warnMsg) + logger.warning(warnMsg) with openFile(filepath, "w+b", None) as f: _ = safechardecode(value, True) @@ -672,7 +672,7 @@ class Dump(object): if not warnFile: logger.info(msg) else: - logger.warn(msg) + logger.warning(msg) def dbColumns(self, dbColumnsDict, colConsider, dbs): if conf.api: diff --git a/lib/core/option.py b/lib/core/option.py index 7d2fc2ae1..cec16b2bf 100644 --- a/lib/core/option.py +++ b/lib/core/option.py @@ -475,7 +475,7 @@ def _setBulkMultipleTargets(): if not found and not conf.forms and not conf.crawlDepth: warnMsg = "no usable links found (with GET parameters)" - logger.warn(warnMsg) + logger.warning(warnMsg) def _findPageForms(): if not conf.forms or conf.crawlDepth: @@ -523,7 +523,7 @@ def _findPageForms(): if not found: warnMsg = "no forms found" - logger.warn(warnMsg) + logger.warning(warnMsg) def _setDBMSAuthentication(): """ @@ -607,16 +607,16 @@ def _setMetasploit(): warnMsg += "or more of the needed Metasploit executables " warnMsg += "within msfcli, msfconsole, msfencode and " warnMsg += "msfpayload do not exist" - logger.warn(warnMsg) + logger.warning(warnMsg) else: warnMsg = "you did not provide the local path where Metasploit " warnMsg += "Framework is installed" - logger.warn(warnMsg) + logger.warning(warnMsg) if not msfEnvPathExists: warnMsg = "sqlmap is going to look for Metasploit Framework " warnMsg += "installation inside the environment path(s)" - logger.warn(warnMsg) + logger.warning(warnMsg) envPaths = os.environ.get("PATH", "").split(";" if IS_WIN else ":") @@ -1202,10 +1202,10 @@ def _setHTTPHandlers(): if conf.proxy: warnMsg += "with HTTP(s) proxy" - logger.warn(warnMsg) + logger.warning(warnMsg) elif conf.authType: warnMsg += "with authentication methods" - logger.warn(warnMsg) + logger.warning(warnMsg) else: handlers.append(keepAliveHandler) @@ -1547,7 +1547,7 @@ def _setHTTPTimeout(): if conf.timeout < 3.0: warnMsg = "the minimum HTTP timeout is 3 seconds, sqlmap " warnMsg += "will going to reset it" - logger.warn(warnMsg) + logger.warning(warnMsg) conf.timeout = 3.0 else: @@ -1586,13 +1586,13 @@ def _createHomeDirectories(): if conf.get("outputDir") and context == "output": warnMsg = "using '%s' as the %s directory" % (directory, context) - logger.warn(warnMsg) + logger.warning(warnMsg) except (OSError, IOError) as ex: tempDir = tempfile.mkdtemp(prefix="sqlmap%s" % context) warnMsg = "unable to %s %s directory " % ("create" if not os.path.isdir(directory) else "write to the", context) warnMsg += "'%s' (%s). " % (directory, getUnicode(ex)) warnMsg += "Using temporary directory '%s' instead" % getUnicode(tempDir) - logger.warn(warnMsg) + logger.warning(warnMsg) paths["SQLMAP_%s_PATH" % context.upper()] = tempDir @@ -1617,7 +1617,7 @@ def _createTemporaryDirectory(): tempfile.tempdir = conf.tmpDir warnMsg = "using '%s' as the temporary directory" % conf.tmpDir - logger.warn(warnMsg) + logger.warning(warnMsg) except (OSError, IOError) as ex: errMsg = "there has been a problem while accessing " errMsg += "temporary directory location(s) ('%s')" % getSafeExString(ex) @@ -1632,7 +1632,7 @@ def _createTemporaryDirectory(): warnMsg += "make sure that there is enough disk space left. If problem persists, " warnMsg += "try to set environment variable 'TEMP' to a location " warnMsg += "writeable by the current user" - logger.warn(warnMsg) + logger.warning(warnMsg) if "sqlmap" not in (tempfile.tempdir or "") or conf.tmpDir and tempfile.tempdir == conf.tmpDir: try: @@ -1832,7 +1832,7 @@ def _cleanupOptions(): warnMsg = "increasing default value for " warnMsg += "option '--time-sec' to %d because " % conf.timeSec warnMsg += "switch '--tor' was provided" - logger.warn(warnMsg) + logger.warning(warnMsg) else: kb.adjustTimeDelay = ADJUST_TIME_DELAY.DISABLE @@ -2217,7 +2217,7 @@ def _useWizardInterface(): if not conf.crawlDepth and not conf.forms: warnMsg += "Will search for forms" conf.forms = True - logger.warn(warnMsg) + logger.warning(warnMsg) choice = None @@ -2473,7 +2473,7 @@ def _setTorHttpProxySettings(): warnMsg += "Tor anonymizing network because of " warnMsg += "known issues with default settings of various 'bundles' " warnMsg += "(e.g. Vidalia)" - logger.warn(warnMsg) + logger.warning(warnMsg) def _setTorSocksProxySettings(): infoMsg = "setting Tor SOCKS proxy settings" @@ -2553,7 +2553,7 @@ def _basicOptionValidation(): if isinstance(conf.limitStart, int) and conf.limitStart > 0 and \ isinstance(conf.limitStop, int) and conf.limitStop < conf.limitStart: warnMsg = "usage of option '--start' (limitStart) which is bigger than value for --stop (limitStop) option is considered unstable" - logger.warn(warnMsg) + logger.warning(warnMsg) if isinstance(conf.firstChar, int) and conf.firstChar > 0 and \ isinstance(conf.lastChar, int) and conf.lastChar < conf.firstChar: @@ -2563,7 +2563,7 @@ def _basicOptionValidation(): if conf.proxyFile and not any((conf.randomAgent, conf.mobile, conf.agent, conf.requestFile)): warnMsg = "usage of switch '--random-agent' is strongly recommended when " warnMsg += "using option '--proxy-file'" - logger.warn(warnMsg) + logger.warning(warnMsg) if conf.textOnly and conf.nullConnection: errMsg = "switch '--text-only' is incompatible with switch '--null-connection'" @@ -2671,7 +2671,7 @@ def _basicOptionValidation(): warnMsg = "increasing default value for " warnMsg += "option '--retries' to %d because " % conf.retries warnMsg += "option '--retry-on' was provided" - logger.warn(warnMsg) + logger.warning(warnMsg) if conf.cookieDel and len(conf.cookieDel): diff --git a/lib/core/settings.py b/lib/core/settings.py index fb5df82e7..f4da0b0a0 100644 --- a/lib/core/settings.py +++ b/lib/core/settings.py @@ -20,7 +20,7 @@ from thirdparty import six from thirdparty.six import unichr as _unichr # sqlmap version (...) -VERSION = "1.6.6.5" +VERSION = "1.6.6.6" 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/lib/core/shell.py b/lib/core/shell.py index 748182d92..e6ad40aa2 100644 --- a/lib/core/shell.py +++ b/lib/core/shell.py @@ -79,7 +79,7 @@ def saveHistory(completion=None): readline.write_history_file(historyPath) except IOError as ex: warnMsg = "there was a problem writing the history file '%s' (%s)" % (historyPath, getSafeExString(ex)) - logger.warn(warnMsg) + logger.warning(warnMsg) except KeyboardInterrupt: pass @@ -103,12 +103,12 @@ def loadHistory(completion=None): readline.read_history_file(historyPath) except IOError as ex: warnMsg = "there was a problem loading the history file '%s' (%s)" % (historyPath, getSafeExString(ex)) - logger.warn(warnMsg) + logger.warning(warnMsg) except UnicodeError: if IS_WIN: warnMsg = "there was a problem loading the history file '%s'. " % historyPath warnMsg += "More info can be found at 'https://github.com/pyreadline/pyreadline/issues/30'" - logger.warn(warnMsg) + logger.warning(warnMsg) def autoCompletion(completion=None, os=None, commands=None): if not readlineAvailable(): diff --git a/lib/core/target.py b/lib/core/target.py index 4766775ba..cda19d99b 100644 --- a/lib/core/target.py +++ b/lib/core/target.py @@ -106,7 +106,7 @@ def _setRequestParams(): # Perform checks on POST parameters if conf.method == HTTPMETHOD.POST and conf.data is None: - logger.warn("detected empty POST body") + logger.warning("detected empty POST body") conf.data = "" if conf.data is not None: @@ -247,7 +247,7 @@ def _setRequestParams(): warnMsg += "parameters (e.g. 'http://www.site.com/article.php?id=1') " warnMsg += "and without providing any POST parameters " warnMsg += "through option '--data'" - logger.warn(warnMsg) + logger.warning(warnMsg) message = "do you want to try URI injections " message += "in the target URL itself? [Y/n/q] " @@ -283,7 +283,7 @@ def _setRequestParams(): warnMsg = "it seems that you've provided empty parameter value(s) " warnMsg += "for testing. Please, always use only valid parameter values " warnMsg += "so sqlmap could be able to run properly" - logger.warn(warnMsg) + logger.warning(warnMsg) if not kb.processUserMarks: if place == PLACE.URI: @@ -582,7 +582,7 @@ def _setResultsFile(): os.close(handle) conf.resultsFP = openFile(conf.resultsFile, "w+", UNICODE_ENCODING, buffering=0) warnMsg += "Using temporary file '%s' instead" % conf.resultsFile - logger.warn(warnMsg) + logger.warning(warnMsg) except IOError as _: errMsg = "unable to write to the temporary directory ('%s'). " % _ errMsg += "Please make sure that your disk is not full and " @@ -613,7 +613,7 @@ def _createFilesDir(): warnMsg = "unable to create files directory " warnMsg += "'%s' (%s). " % (conf.filePath, getUnicode(ex)) warnMsg += "Using temporary directory '%s' instead" % getUnicode(tempDir) - logger.warn(warnMsg) + logger.warning(warnMsg) conf.filePath = tempDir @@ -635,7 +635,7 @@ def _createDumpDir(): warnMsg = "unable to create dump directory " warnMsg += "'%s' (%s). " % (conf.dumpPath, getUnicode(ex)) warnMsg += "Using temporary directory '%s' instead" % getUnicode(tempDir) - logger.warn(warnMsg) + logger.warning(warnMsg) conf.dumpPath = tempDir @@ -658,7 +658,7 @@ def _createTargetDirs(): warnMsg = "unable to create output directory " warnMsg += "'%s' (%s). " % (conf.outputPath, getUnicode(ex)) warnMsg += "Using temporary directory '%s' instead" % getUnicode(tempDir) - logger.warn(warnMsg) + logger.warning(warnMsg) conf.outputPath = tempDir @@ -681,7 +681,7 @@ def _createTargetDirs(): raise SqlmapMissingPrivileges(errMsg) except UnicodeError as ex: warnMsg = "something went wrong while saving target data ('%s')" % getSafeExString(ex) - logger.warn(warnMsg) + logger.warning(warnMsg) _createDumpDir() _createFilesDir() diff --git a/lib/core/threads.py b/lib/core/threads.py index 5a264930f..936c3dffa 100644 --- a/lib/core/threads.py +++ b/lib/core/threads.py @@ -154,7 +154,7 @@ def runThreads(numThreads, threadFunction, cleanupFunction=None, forwardExceptio if numThreads == 1: warnMsg = "running in a single-thread mode. This could take a while" - logger.warn(warnMsg) + logger.warning(warnMsg) if numThreads > 1: if startThreadMsg: diff --git a/lib/core/update.py b/lib/core/update.py index dedd11103..d85a39f06 100644 --- a/lib/core/update.py +++ b/lib/core/update.py @@ -68,7 +68,7 @@ def update(): elif not os.path.exists(os.path.join(paths.SQLMAP_ROOT_PATH, ".git")): warnMsg = "not a git repository. It is recommended to clone the 'sqlmapproject/sqlmap' repository " warnMsg += "from GitHub (e.g. 'git clone --depth 1 %s sqlmap')" % GIT_REPOSITORY - logger.warn(warnMsg) + logger.warning(warnMsg) if VERSION == getLatestRevision(): logger.info("already at the latest revision '%s'" % getRevisionNumber()) diff --git a/lib/parse/sitemap.py b/lib/parse/sitemap.py index 3e789ac40..452f894e8 100644 --- a/lib/parse/sitemap.py +++ b/lib/parse/sitemap.py @@ -51,6 +51,6 @@ def parseSitemap(url, retVal=None): abortedFlag = True warnMsg = "user aborted during sitemap parsing. sqlmap " warnMsg += "will use partial list" - logger.warn(warnMsg) + logger.warning(warnMsg) return retVal diff --git a/lib/request/connect.py b/lib/request/connect.py index bf752bce9..c630519c7 100644 --- a/lib/request/connect.py +++ b/lib/request/connect.py @@ -169,7 +169,7 @@ class Connect(object): if conf.proxyList and threadData.retriesCount >= conf.retries and not kb.locks.handlers.locked(): warnMsg = "changing proxy" - logger.warn(warnMsg) + logger.warning(warnMsg) conf.proxy = None threadData.retriesCount = 0 @@ -312,7 +312,7 @@ class Connect(object): conf.proxy = None warnMsg = "changing proxy" - logger.warn(warnMsg) + logger.warning(warnMsg) setHTTPHandlers() @@ -703,7 +703,7 @@ class Connect(object): conn.close() except Exception as ex: warnMsg = "problem occurred during connection closing ('%s')" % getSafeExString(ex) - logger.warn(warnMsg) + logger.warning(warnMsg) except SqlmapConnectionException as ex: if conf.proxyList and not kb.threadException: @@ -730,7 +730,7 @@ class Connect(object): except socket.timeout: warnMsg = "connection timed out while trying " warnMsg += "to get error page information (%d)" % ex.code - logger.warn(warnMsg) + logger.warning(warnMsg) return None, None, None except KeyboardInterrupt: raise @@ -927,7 +927,7 @@ class Connect(object): if conf.retryOn and re.search(conf.retryOn, page, re.I): if threadData.retriesCount < conf.retries: warnMsg = "forced retry of the request because of undesired page content" - logger.warn(warnMsg) + logger.warning(warnMsg) return Connect._retryProxy(**kwargs) processResponse(page, responseHeaders, code, status) @@ -1174,7 +1174,7 @@ class Connect(object): if attempt > 0: warnMsg = "unable to find anti-CSRF token '%s' at '%s'" % (conf.csrfToken._original, conf.csrfUrl or conf.url) warnMsg += ". sqlmap is going to retry the request" - logger.warn(warnMsg) + logger.warning(warnMsg) page, headers, code = Connect.getPage(url=conf.csrfUrl or conf.url, data=conf.data if conf.csrfUrl == conf.url else None, method=conf.csrfMethod or (conf.method if conf.csrfUrl == conf.url else None), cookie=conf.parameters.get(PLACE.COOKIE), direct=True, silent=True, ua=conf.parameters.get(PLACE.USER_AGENT), referer=conf.parameters.get(PLACE.REFERER), host=conf.parameters.get(PLACE.HOST)) page = urldecode(page) # for anti-CSRF tokens with special characters in their name (e.g. 'foo:bar=...') diff --git a/lib/request/inject.py b/lib/request/inject.py index 2e3cf0239..7d584e8be 100644 --- a/lib/request/inject.py +++ b/lib/request/inject.py @@ -270,7 +270,7 @@ def _goInferenceProxy(expression, fromUser=False, batch=False, unpack=True, char warnMsg += "of entries for the SQL query provided. " warnMsg += "sqlmap will assume that it returns only " warnMsg += "one entry" - logger.warn(warnMsg) + logger.warning(warnMsg) stopLimit = 1 @@ -278,7 +278,7 @@ def _goInferenceProxy(expression, fromUser=False, batch=False, unpack=True, char if not count: warnMsg = "the SQL query provided does not " warnMsg += "return any output" - logger.warn(warnMsg) + logger.warning(warnMsg) return None @@ -298,7 +298,7 @@ def _goInferenceProxy(expression, fromUser=False, batch=False, unpack=True, char except KeyboardInterrupt: print() warnMsg = "user aborted during dumping phase" - logger.warn(warnMsg) + logger.warning(warnMsg) return outputs diff --git a/lib/takeover/abstraction.py b/lib/takeover/abstraction.py index 29c6b21d3..bb2faf01e 100644 --- a/lib/takeover/abstraction.py +++ b/lib/takeover/abstraction.py @@ -211,7 +211,7 @@ class Abstraction(Web, UDF, XP_cmdshell): warnMsg += "were able to extract and crack a DBA " warnMsg += "password by any mean" - logger.warn(warnMsg) + logger.warning(warnMsg) if any((conf.osCmd, conf.osShell)) and Backend.isDbms(DBMS.PGSQL) and self.checkCopyExec(): success = True diff --git a/lib/takeover/icmpsh.py b/lib/takeover/icmpsh.py index 48acaab56..be87387be 100644 --- a/lib/takeover/icmpsh.py +++ b/lib/takeover/icmpsh.py @@ -72,7 +72,7 @@ class ICMPsh(object): raise SqlmapDataException("local host address is missing") elif address and not valid: warnMsg = "invalid local host address" - logger.warn(warnMsg) + logger.warning(warnMsg) return address diff --git a/lib/takeover/metasploit.py b/lib/takeover/metasploit.py index be982ec37..b322fc44c 100644 --- a/lib/takeover/metasploit.py +++ b/lib/takeover/metasploit.py @@ -206,7 +206,7 @@ class Metasploit(object): warnMsg = "by default PostgreSQL on Windows runs as " warnMsg += "postgres user, it is unlikely that the VNC " warnMsg += "injection will be successful" - logger.warn(warnMsg) + logger.warning(warnMsg) elif Backend.isDbms(DBMS.MSSQL) and Backend.isVersionWithin(("2005", "2008")): choose = True @@ -215,7 +215,7 @@ class Metasploit(object): warnMsg += "successful because usually Microsoft SQL Server " warnMsg += "%s runs as Network Service " % Backend.getVersion() warnMsg += "or the Administrator is not logged in" - logger.warn(warnMsg) + logger.warning(warnMsg) if choose: message = "what do you want to do?\n" @@ -236,23 +236,23 @@ class Metasploit(object): elif choice == "1": if Backend.isDbms(DBMS.PGSQL): - logger.warn("beware that the VNC injection might not work") + logger.warning("beware that the VNC injection might not work") break elif Backend.isDbms(DBMS.MSSQL) and Backend.isVersionWithin(("2005", "2008")): break elif not isDigit(choice): - logger.warn("invalid value, only digits are allowed") + logger.warning("invalid value, only digits are allowed") elif int(choice) < 1 or int(choice) > 2: - logger.warn("invalid value, it must be 1 or 2") + logger.warning("invalid value, it must be 1 or 2") if self.connectionStr.startswith("reverse_http") and _payloadStr != "windows/meterpreter": warnMsg = "Reverse HTTP%s connection is only supported " % ("S" if self.connectionStr.endswith("s") else "") warnMsg += "with the Meterpreter payload. Falling back to " warnMsg += "reverse TCP" - logger.warn(warnMsg) + logger.warning(warnMsg) self.connectionStr = "reverse_tcp" diff --git a/lib/takeover/udf.py b/lib/takeover/udf.py index c51f81717..d3b1a21c1 100644 --- a/lib/takeover/udf.py +++ b/lib/takeover/udf.py @@ -198,7 +198,7 @@ class UDF(object): if not self.isDba(): warnMsg = "functionality requested probably does not work because " warnMsg += "the current session user is not a database administrator" - logger.warn(warnMsg) + logger.warning(warnMsg) if not conf.shLib: msg = "what is the local path of the shared library? " @@ -209,7 +209,7 @@ class UDF(object): if self.udfLocalFile: break else: - logger.warn("you need to specify the local path of the shared library") + logger.warning("you need to specify the local path of the shared library") else: self.udfLocalFile = conf.shLib @@ -249,7 +249,7 @@ class UDF(object): else: break else: - logger.warn("invalid value, only digits are allowed") + logger.warning("invalid value, only digits are allowed") for x in xrange(0, udfCount): while True: @@ -260,7 +260,7 @@ class UDF(object): self.udfs[udfName] = {} break else: - logger.warn("you need to specify the name of the UDF") + logger.warning("you need to specify the name of the UDF") if Backend.isDbms(DBMS.MYSQL): defaultType = "string" @@ -280,7 +280,7 @@ class UDF(object): break else: - logger.warn("invalid value, only digits >= 0 are allowed") + logger.warning("invalid value, only digits >= 0 are allowed") for y in xrange(0, parCount): msg = "what is the data-type of input parameter " @@ -290,7 +290,7 @@ class UDF(object): parType = readInput(msg, default=defaultType).strip() if parType.isdigit(): - logger.warn("you need to specify the data-type of the parameter") + logger.warning("you need to specify the data-type of the parameter") else: self.udfs[udfName]["input"].append(parType) @@ -303,7 +303,7 @@ class UDF(object): retType = readInput(msg, default=defaultType) if hasattr(retType, "isdigit") and retType.isdigit(): - logger.warn("you need to specify the data-type of the return value") + logger.warning("you need to specify the data-type of the return value") else: self.udfs[udfName]["return"] = retType break @@ -346,7 +346,7 @@ class UDF(object): else: warnMsg = "invalid value, only digits >= 1 and " warnMsg += "<= %d are allowed" % len(udfList) - logger.warn(warnMsg) + logger.warning(warnMsg) if not isinstance(choice, int): break @@ -370,7 +370,7 @@ class UDF(object): break else: - logger.warn("you need to specify the value of the parameter") + logger.warning("you need to specify the value of the parameter") count += 1 diff --git a/lib/takeover/web.py b/lib/takeover/web.py index 78d231bed..93cb79f23 100644 --- a/lib/takeover/web.py +++ b/lib/takeover/web.py @@ -137,7 +137,7 @@ class Web(object): if "File uploaded" not in (page or ""): warnMsg = "unable to upload the file through the web file " warnMsg += "stager to '%s'" % directory - logger.warn(warnMsg) + logger.warning(warnMsg) return False else: return True @@ -202,10 +202,10 @@ class Web(object): choice = readInput(message, default=str(default)) if not isDigit(choice): - logger.warn("invalid value, only digits are allowed") + logger.warning("invalid value, only digits are allowed") elif int(choice) < 1 or int(choice) > len(choices): - logger.warn("invalid value, it must be between 1 and %d" % len(choices)) + logger.warning("invalid value, it must be between 1 and %d" % len(choices)) else: self.webPlatform = choices[int(choice) - 1] @@ -362,7 +362,7 @@ class Web(object): if "<%" in uplPage or " 1 else '') - logger.warn(warnMsg) + logger.warning(warnMsg) if kb.adjustTimeDelay is ADJUST_TIME_DELAY.YES: dbgMsg = "turning off time auto-adjustment mechanism" diff --git a/lib/techniques/error/use.py b/lib/techniques/error/use.py index 6cb546c58..078c04b4e 100644 --- a/lib/techniques/error/use.py +++ b/lib/techniques/error/use.py @@ -167,7 +167,7 @@ def _oneShotErrorUse(expression, field=None, chunkTest=False): warnMsg = "possible server trimmed output detected " warnMsg += "(due to its length and/or content): " warnMsg += safecharencode(trimmed) - logger.warn(warnMsg) + logger.warning(warnMsg) if not kb.testMode: check = r"(?P[^<>\n]*?)%s" % kb.chars.stop[:2] @@ -351,7 +351,7 @@ def errorUse(expression, dump=False): warnMsg += "of entries for the SQL query provided. " warnMsg += "sqlmap will assume that it returns only " warnMsg += "one entry" - logger.warn(warnMsg) + logger.warning(warnMsg) stopLimit = 1 @@ -359,7 +359,7 @@ def errorUse(expression, dump=False): if not count: warnMsg = "the SQL query provided does not " warnMsg += "return any output" - logger.warn(warnMsg) + logger.warning(warnMsg) else: value = [] # for empty tables return value @@ -445,7 +445,7 @@ def errorUse(expression, dump=False): abortedFlag = True warnMsg = "user aborted during enumeration. sqlmap " warnMsg += "will display partial output" - logger.warn(warnMsg) + logger.warning(warnMsg) finally: threadData.shared.value.extend(_[1] for _ in sorted(threadData.shared.buffered)) diff --git a/lib/techniques/union/test.py b/lib/techniques/union/test.py index c98e6fb06..64b5be0aa 100644 --- a/lib/techniques/union/test.py +++ b/lib/techniques/union/test.py @@ -275,7 +275,7 @@ def _unionPosition(comment, place, parameter, prefix, suffix, count, where=PAYLO content = ("%s%s" % (removeReflectiveValues(page, payload) or "", removeReflectiveValues(listToStrValue(headers.headers if headers else None), payload, True) or "")).lower() if content.count(phrase) > 0 and content.count(phrase) < LIMITED_ROWS_TEST_NUMBER: warnMsg = "output with limited number of rows detected. Switching to partial mode" - logger.warn(warnMsg) + logger.warning(warnMsg) vector = (position, count, comment, prefix, suffix, kb.uChar, where, kb.unionDuplicates, True, kb.tableFrom, kb.unionTemplate) unionErrorCase = kb.errorIsNone and wasLastResponseDBMSError() @@ -284,7 +284,7 @@ def _unionPosition(comment, place, parameter, prefix, suffix, count, where=PAYLO warnMsg = "combined UNION/error-based SQL injection case found on " warnMsg += "column %d. sqlmap will try to find another " % (position + 1) warnMsg += "column with better characteristics" - logger.warn(warnMsg) + logger.warning(warnMsg) else: break diff --git a/lib/techniques/union/use.py b/lib/techniques/union/use.py index df3f70660..b77cc646d 100644 --- a/lib/techniques/union/use.py +++ b/lib/techniques/union/use.py @@ -167,7 +167,7 @@ def _oneShotUnionUse(expression, unpack=True, limited=False): warnMsg = "possible server trimmed output detected " warnMsg += "(probably due to its length and/or content): " warnMsg += safecharencode(trimmed) - logger.warn(warnMsg) + logger.warning(warnMsg) elif re.search(r"ORDER BY [^ ]+\Z", expression): debugMsg = "retrying failed SQL query without the ORDER BY clause" @@ -304,7 +304,7 @@ def unionUse(expression, unpack=True, dump=False): warnMsg += "of entries for the SQL query provided. " warnMsg += "sqlmap will assume that it returns only " warnMsg += "one entry" - logger.warn(warnMsg) + logger.warning(warnMsg) stopLimit = 1 @@ -312,7 +312,7 @@ def unionUse(expression, unpack=True, dump=False): if not count: warnMsg = "the SQL query provided does not " warnMsg += "return any output" - logger.warn(warnMsg) + logger.warning(warnMsg) else: value = [] # for empty tables return value @@ -429,7 +429,7 @@ def unionUse(expression, unpack=True, dump=False): warnMsg = "user aborted during enumeration. sqlmap " warnMsg += "will display partial output" - logger.warn(warnMsg) + logger.warning(warnMsg) finally: for _ in sorted(threadData.shared.buffered): diff --git a/lib/utils/brute.py b/lib/utils/brute.py index 6f6d710ee..f9fe08089 100644 --- a/lib/utils/brute.py +++ b/lib/utils/brute.py @@ -66,7 +66,7 @@ def tableExists(tableFile, regex=None): if kb.choices.tableExists is None and not any(_ for _ in kb.injection.data if _ not in (PAYLOAD.TECHNIQUE.TIME, PAYLOAD.TECHNIQUE.STACKED)) and not conf.direct: warnMsg = "it's not recommended to use '%s' and/or '%s' " % (PAYLOAD.SQLINJECTION[PAYLOAD.TECHNIQUE.TIME], PAYLOAD.SQLINJECTION[PAYLOAD.TECHNIQUE.STACKED]) warnMsg += "for common table existence check" - logger.warn(warnMsg) + logger.warning(warnMsg) message = "are you sure you want to continue? [y/N] " kb.choices.tableExists = readInput(message, default='N', boolean=True) @@ -160,7 +160,7 @@ def tableExists(tableFile, regex=None): except KeyboardInterrupt: warnMsg = "user aborted during table existence " warnMsg += "check. sqlmap will display partial output" - logger.warn(warnMsg) + logger.warning(warnMsg) clearConsoleLine(True) dataToStdout("\n") @@ -169,7 +169,7 @@ def tableExists(tableFile, regex=None): warnMsg = "no table(s) found" if conf.db: warnMsg += " for database '%s'" % conf.db - logger.warn(warnMsg) + logger.warning(warnMsg) else: for item in threadData.shared.files: if conf.db not in kb.data.cachedTables: @@ -190,7 +190,7 @@ def columnExists(columnFile, regex=None): if kb.choices.columnExists is None and not any(_ for _ in kb.injection.data if _ not in (PAYLOAD.TECHNIQUE.TIME, PAYLOAD.TECHNIQUE.STACKED)) and not conf.direct: warnMsg = "it's not recommended to use '%s' and/or '%s' " % (PAYLOAD.SQLINJECTION[PAYLOAD.TECHNIQUE.TIME], PAYLOAD.SQLINJECTION[PAYLOAD.TECHNIQUE.STACKED]) warnMsg += "for common column existence check" - logger.warn(warnMsg) + logger.warning(warnMsg) message = "are you sure you want to continue? [y/N] " kb.choices.columnExists = readInput(message, default='N', boolean=True) @@ -281,7 +281,7 @@ def columnExists(columnFile, regex=None): except KeyboardInterrupt: warnMsg = "user aborted during column existence " warnMsg += "check. sqlmap will display partial output" - logger.warn(warnMsg) + logger.warning(warnMsg) finally: kb.bruteMode = False @@ -290,7 +290,7 @@ def columnExists(columnFile, regex=None): if not threadData.shared.files: warnMsg = "no column(s) found" - logger.warn(warnMsg) + logger.warning(warnMsg) else: columns = {} @@ -394,7 +394,7 @@ def fileExists(pathFile): except KeyboardInterrupt: warnMsg = "user aborted during file existence " warnMsg += "check. sqlmap will display partial output" - logger.warn(warnMsg) + logger.warning(warnMsg) finally: kb.bruteMode = False logger.setLevel(popValue()) @@ -404,7 +404,7 @@ def fileExists(pathFile): if not threadData.shared.files: warnMsg = "no file(s) found" - logger.warn(warnMsg) + logger.warning(warnMsg) else: retVal = threadData.shared.files diff --git a/lib/utils/crawler.py b/lib/utils/crawler.py index 7ca93ef16..021514541 100644 --- a/lib/utils/crawler.py +++ b/lib/utils/crawler.py @@ -162,7 +162,7 @@ def crawl(target, post=None, cookie=None): except SqlmapConnectionException as ex: if "page not found" in getSafeExString(ex): found = False - logger.warn("'sitemap.xml' not found") + logger.warning("'sitemap.xml' not found") except: pass finally: @@ -198,7 +198,7 @@ def crawl(target, post=None, cookie=None): except KeyboardInterrupt: warnMsg = "user aborted during crawling. sqlmap " warnMsg += "will use partial list" - logger.warn(warnMsg) + logger.warning(warnMsg) finally: clearConsoleLine(True) @@ -208,7 +208,7 @@ def crawl(target, post=None, cookie=None): warnMsg = "no usable links found (with GET parameters)" if conf.forms: warnMsg += " or forms" - logger.warn(warnMsg) + logger.warning(warnMsg) else: for url in threadData.shared.value: kb.targets.add((urldecode(url, kb.pageEncoding), None, None, None, None)) diff --git a/lib/utils/deps.py b/lib/utils/deps.py index 50708e6a7..846f2637f 100644 --- a/lib/utils/deps.py +++ b/lib/utils/deps.py @@ -26,7 +26,7 @@ def checkDependencies(): warnMsg = "'%s' third-party library must be " % data[1] warnMsg += "version >= 1.0.2 to work properly. " warnMsg += "Download from '%s'" % data[2] - logger.warn(warnMsg) + logger.warning(warnMsg) elif dbmsName == DBMS.MYSQL: __import__("pymysql") elif dbmsName in (DBMS.PGSQL, DBMS.CRATEDB): @@ -62,7 +62,7 @@ def checkDependencies(): warnMsg = "sqlmap requires '%s' third-party library " % data[1] warnMsg += "in order to directly connect to the DBMS " warnMsg += "'%s'. Download from '%s'" % (dbmsName, data[2]) - logger.warn(warnMsg) + logger.warning(warnMsg) missing_libraries.add(data[1]) continue @@ -78,7 +78,7 @@ def checkDependencies(): warnMsg = "sqlmap requires 'python-impacket' third-party library for " warnMsg += "out-of-band takeover feature. Download from " warnMsg += "'https://github.com/coresecurity/impacket'" - logger.warn(warnMsg) + logger.warning(warnMsg) missing_libraries.add('python-impacket') try: @@ -89,7 +89,7 @@ def checkDependencies(): warnMsg = "sqlmap requires 'python-ntlm' third-party library " warnMsg += "if you plan to attack a web application behind NTLM " warnMsg += "authentication. Download from 'https://github.com/mullender/python-ntlm'" - logger.warn(warnMsg) + logger.warning(warnMsg) missing_libraries.add('python-ntlm') try: @@ -100,7 +100,7 @@ def checkDependencies(): warnMsg = "sqlmap requires 'websocket-client' third-party library " warnMsg += "if you plan to attack a web application using WebSocket. " warnMsg += "Download from 'https://pypi.python.org/pypi/websocket-client/'" - logger.warn(warnMsg) + logger.warning(warnMsg) missing_libraries.add('websocket-client') try: @@ -110,7 +110,7 @@ def checkDependencies(): except ImportError: warnMsg = "sqlmap requires 'tkinter' library " warnMsg += "if you plan to run a GUI" - logger.warn(warnMsg) + logger.warning(warnMsg) missing_libraries.add('tkinter') try: @@ -120,7 +120,7 @@ def checkDependencies(): except ImportError: warnMsg = "sqlmap requires 'tkinter.ttk' library " warnMsg += "if you plan to run a GUI" - logger.warn(warnMsg) + logger.warning(warnMsg) missing_libraries.add('tkinter.ttk') if IS_WIN: @@ -134,7 +134,7 @@ def checkDependencies(): warnMsg += "completion and history support features in the SQL " warnMsg += "shell and OS shell. Download from " warnMsg += "'https://pypi.org/project/pyreadline/'" - logger.warn(warnMsg) + logger.warning(warnMsg) missing_libraries.add('python-pyreadline') if len(missing_libraries) == 0: diff --git a/lib/utils/hash.py b/lib/utils/hash.py index c1df2d22c..b716a54fa 100644 --- a/lib/utils/hash.py +++ b/lib/utils/hash.py @@ -701,7 +701,7 @@ def attackDumpedTable(): _ = ','.join(binary_fields) warnMsg = "potential binary fields detected ('%s'). In case of any problems you are " % _ warnMsg += "advised to rerun table dump with '--fresh-queries --binary-fields=\"%s\"'" % _ - logger.warn(warnMsg) + logger.warning(warnMsg) for i in xrange(count): if not found and i > HASH_RECOGNITION_QUIT_THRESHOLD: @@ -1064,7 +1064,7 @@ def dictionaryAttack(attack_dict): item = [(user, hash_), {"salt": hash_[4:12], "count": 1 << ITOA64.index(hash_[3]), "prefix": hash_[:3]}] else: warnMsg = "invalid hash '%s'" % hash_ - logger.warn(warnMsg) + logger.warning(warnMsg) if item and hash_ not in keys: resumed = hashDBRetrieve(hash_) @@ -1197,7 +1197,7 @@ def dictionaryAttack(attack_dict): print() processException = True warnMsg = "user aborted during dictionary-based attack phase (Ctrl+C was pressed)" - logger.warn(warnMsg) + logger.warning(warnMsg) finally: _finalize(retVal, results, processes, attack_info) @@ -1272,7 +1272,7 @@ def dictionaryAttack(attack_dict): print() processException = True warnMsg = "user aborted during dictionary-based attack phase (Ctrl+C was pressed)" - logger.warn(warnMsg) + logger.warning(warnMsg) for process in processes: try: @@ -1290,11 +1290,11 @@ def dictionaryAttack(attack_dict): if foundHash and len(hash_regexes) == 0: warnMsg = "unknown hash format" - logger.warn(warnMsg) + logger.warning(warnMsg) if len(results) == 0: warnMsg = "no clear password(s) found" - logger.warn(warnMsg) + logger.warning(warnMsg) return results diff --git a/lib/utils/hashdb.py b/lib/utils/hashdb.py index 4b346a771..128720dd1 100644 --- a/lib/utils/hashdb.py +++ b/lib/utils/hashdb.py @@ -116,7 +116,7 @@ class HashDB(object): retVal = None warnMsg = "error occurred while unserializing value for session key '%s'. " % key warnMsg += "If the problem persists please rerun with '--flush-session'" - logger.warn(warnMsg) + logger.warning(warnMsg) return retVal @@ -163,7 +163,7 @@ class HashDB(object): if retries == 0: warnMsg = "there has been a problem while writing to " warnMsg += "the session file ('%s')" % getSafeExString(ex) - logger.warn(warnMsg) + logger.warning(warnMsg) if retries >= HASHDB_FLUSH_RETRIES: return diff --git a/lib/utils/pivotdumptable.py b/lib/utils/pivotdumptable.py index a61987060..a36ab80e8 100644 --- a/lib/utils/pivotdumptable.py +++ b/lib/utils/pivotdumptable.py @@ -88,7 +88,7 @@ def pivotDumpTable(table, colList, count=None, blind=True, alias=None): if not validPivotValue: warnMsg = "column '%s' not " % conf.pivotColumn warnMsg += "found in table '%s'" % table - logger.warn(warnMsg) + logger.warning(warnMsg) if not validPivotValue: for column in colList: @@ -120,7 +120,7 @@ def pivotDumpTable(table, colList, count=None, blind=True, alias=None): if not validPivotValue: warnMsg = "no proper pivot column provided (with unique values)." warnMsg += " It won't be possible to retrieve all rows" - logger.warn(warnMsg) + logger.warning(warnMsg) pivotValue = " " breakRetrieval = False @@ -177,7 +177,7 @@ def pivotDumpTable(table, colList, count=None, blind=True, alias=None): warnMsg = "user aborted during enumeration. sqlmap " warnMsg += "will display partial output" - logger.warn(warnMsg) + logger.warning(warnMsg) except SqlmapConnectionException as ex: errMsg = "connection exception detected ('%s'). sqlmap " % getSafeExString(ex) diff --git a/lib/utils/purge.py b/lib/utils/purge.py index 8d1aed5a1..327261469 100644 --- a/lib/utils/purge.py +++ b/lib/utils/purge.py @@ -26,7 +26,7 @@ def purge(directory): if not os.path.isdir(directory): warnMsg = "skipping purging of directory '%s' as it does not exist" % directory - logger.warn(warnMsg) + logger.warning(warnMsg) return infoMsg = "purging content of directory '%s'..." % directory diff --git a/lib/utils/search.py b/lib/utils/search.py index 12f167b4f..2b4a12b97 100644 --- a/lib/utils/search.py +++ b/lib/utils/search.py @@ -196,7 +196,7 @@ def search(dork): logger.critical(getSafeExString(ex)) warnMsg = "changing proxy" - logger.warn(warnMsg) + logger.warning(warnMsg) conf.proxy = None diff --git a/plugins/dbms/access/enumeration.py b/plugins/dbms/access/enumeration.py index a3e5b2dfc..04a050a42 100644 --- a/plugins/dbms/access/enumeration.py +++ b/plugins/dbms/access/enumeration.py @@ -11,74 +11,74 @@ from plugins.generic.enumeration import Enumeration as GenericEnumeration class Enumeration(GenericEnumeration): def getBanner(self): warnMsg = "on Microsoft Access it is not possible to get the banner" - logger.warn(warnMsg) + logger.warning(warnMsg) return None def getCurrentUser(self): warnMsg = "on Microsoft Access it is not possible to enumerate the current user" - logger.warn(warnMsg) + logger.warning(warnMsg) def getCurrentDb(self): warnMsg = "on Microsoft Access it is not possible to get name of the current database" - logger.warn(warnMsg) + logger.warning(warnMsg) def isDba(self, user=None): warnMsg = "on Microsoft Access it is not possible to test if current user is DBA" - logger.warn(warnMsg) + logger.warning(warnMsg) def getUsers(self): warnMsg = "on Microsoft Access it is not possible to enumerate the users" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def getPasswordHashes(self): warnMsg = "on Microsoft Access it is not possible to enumerate the user password hashes" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getPrivileges(self, *args, **kwargs): warnMsg = "on Microsoft Access it is not possible to enumerate the user privileges" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getDbs(self): warnMsg = "on Microsoft Access it is not possible to enumerate databases (use only '--tables')" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def searchDb(self): warnMsg = "on Microsoft Access it is not possible to search databases" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def searchTable(self): warnMsg = "on Microsoft Access it is not possible to search tables" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def searchColumn(self): warnMsg = "on Microsoft Access it is not possible to search columns" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def search(self): warnMsg = "on Microsoft Access search option is not available" - logger.warn(warnMsg) + logger.warning(warnMsg) def getHostname(self): warnMsg = "on Microsoft Access it is not possible to enumerate the hostname" - logger.warn(warnMsg) + logger.warning(warnMsg) def getStatements(self): warnMsg = "on Microsoft Access it is not possible to enumerate the SQL statements" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] diff --git a/plugins/dbms/access/fingerprint.py b/plugins/dbms/access/fingerprint.py index 852ea5c81..e1227bef5 100644 --- a/plugins/dbms/access/fingerprint.py +++ b/plugins/dbms/access/fingerprint.py @@ -166,7 +166,7 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "the back-end DBMS is not %s" % DBMS.ACCESS - logger.warn(warnMsg) + logger.warning(warnMsg) return False setDbms(DBMS.ACCESS) @@ -185,7 +185,7 @@ class Fingerprint(GenericFingerprint): return True else: warnMsg = "the back-end DBMS is not %s" % DBMS.ACCESS - logger.warn(warnMsg) + logger.warning(warnMsg) return False diff --git a/plugins/dbms/altibase/enumeration.py b/plugins/dbms/altibase/enumeration.py index 048227a70..0628c8eeb 100644 --- a/plugins/dbms/altibase/enumeration.py +++ b/plugins/dbms/altibase/enumeration.py @@ -11,10 +11,10 @@ from plugins.generic.enumeration import Enumeration as GenericEnumeration class Enumeration(GenericEnumeration): def getStatements(self): warnMsg = "on Altibase it is not possible to enumerate the SQL statements" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def getHostname(self): warnMsg = "on Altibase it is not possible to enumerate the hostname" - logger.warn(warnMsg) + logger.warning(warnMsg) diff --git a/plugins/dbms/altibase/fingerprint.py b/plugins/dbms/altibase/fingerprint.py index 79cc7058c..fec86354f 100644 --- a/plugins/dbms/altibase/fingerprint.py +++ b/plugins/dbms/altibase/fingerprint.py @@ -79,7 +79,7 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "the back-end DBMS is not %s" % DBMS.ALTIBASE - logger.warn(warnMsg) + logger.warning(warnMsg) return False @@ -90,6 +90,6 @@ class Fingerprint(GenericFingerprint): return True else: warnMsg = "the back-end DBMS is not %s" % DBMS.ALTIBASE - logger.warn(warnMsg) + logger.warning(warnMsg) return False diff --git a/plugins/dbms/cache/enumeration.py b/plugins/dbms/cache/enumeration.py index 9ef812a04..56e580f00 100644 --- a/plugins/dbms/cache/enumeration.py +++ b/plugins/dbms/cache/enumeration.py @@ -15,34 +15,34 @@ class Enumeration(GenericEnumeration): def getUsers(self): warnMsg = "on Cache it is not possible to enumerate the users" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def getPasswordHashes(self): warnMsg = "on Cache it is not possible to enumerate password hashes" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getPrivileges(self, *args, **kwargs): warnMsg = "on Cache it is not possible to enumerate the user privileges" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getStatements(self): warnMsg = "on Cache it is not possible to enumerate the SQL statements" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def getRoles(self, *args, **kwargs): warnMsg = "on Cache it is not possible to enumerate the user roles" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getHostname(self): warnMsg = "on Cache it is not possible to enumerate the hostname" - logger.warn(warnMsg) + logger.warning(warnMsg) diff --git a/plugins/dbms/cache/fingerprint.py b/plugins/dbms/cache/fingerprint.py index 92f03effb..d22652934 100644 --- a/plugins/dbms/cache/fingerprint.py +++ b/plugins/dbms/cache/fingerprint.py @@ -97,7 +97,7 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "the back-end DBMS is not %s" % DBMS.CACHE - logger.warn(warnMsg) + logger.warning(warnMsg) return False @@ -108,6 +108,6 @@ class Fingerprint(GenericFingerprint): return True else: warnMsg = "the back-end DBMS is not %s" % DBMS.CACHE - logger.warn(warnMsg) + logger.warning(warnMsg) return False diff --git a/plugins/dbms/cratedb/connector.py b/plugins/dbms/cratedb/connector.py index c21507325..2b9b77829 100644 --- a/plugins/dbms/cratedb/connector.py +++ b/plugins/dbms/cratedb/connector.py @@ -46,7 +46,7 @@ class Connector(GenericConnector): try: return self.cursor.fetchall() except psycopg2.ProgrammingError as ex: - logger.warn(getSafeExString(ex)) + logger.warning(getSafeExString(ex)) return None def execute(self, query): @@ -56,7 +56,7 @@ class Connector(GenericConnector): self.cursor.execute(query) retVal = True except (psycopg2.OperationalError, psycopg2.ProgrammingError) as ex: - logger.warn(("(remote) '%s'" % getSafeExString(ex)).strip()) + logger.warning(("(remote) '%s'" % getSafeExString(ex)).strip()) except psycopg2.InternalError as ex: raise SqlmapConnectionException(getSafeExString(ex)) diff --git a/plugins/dbms/cratedb/enumeration.py b/plugins/dbms/cratedb/enumeration.py index 5d6f5bff2..9f7c802d4 100644 --- a/plugins/dbms/cratedb/enumeration.py +++ b/plugins/dbms/cratedb/enumeration.py @@ -11,12 +11,12 @@ from plugins.generic.enumeration import Enumeration as GenericEnumeration class Enumeration(GenericEnumeration): def getPasswordHashes(self): warnMsg = "on CrateDB it is not possible to enumerate the user password hashes" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getRoles(self, *args, **kwargs): warnMsg = "on CrateDB it is not possible to enumerate the user roles" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} diff --git a/plugins/dbms/cratedb/fingerprint.py b/plugins/dbms/cratedb/fingerprint.py index 183447cee..58b4796b4 100644 --- a/plugins/dbms/cratedb/fingerprint.py +++ b/plugins/dbms/cratedb/fingerprint.py @@ -78,7 +78,7 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "the back-end DBMS is not %s" % DBMS.CRATEDB - logger.warn(warnMsg) + logger.warning(warnMsg) return False @@ -89,6 +89,6 @@ class Fingerprint(GenericFingerprint): return True else: warnMsg = "the back-end DBMS is not %s" % DBMS.CRATEDB - logger.warn(warnMsg) + logger.warning(warnMsg) return False diff --git a/plugins/dbms/cubrid/enumeration.py b/plugins/dbms/cubrid/enumeration.py index 3b9e06773..1a88581f3 100644 --- a/plugins/dbms/cubrid/enumeration.py +++ b/plugins/dbms/cubrid/enumeration.py @@ -11,22 +11,22 @@ from plugins.generic.enumeration import Enumeration as GenericEnumeration class Enumeration(GenericEnumeration): def getPasswordHashes(self): warnMsg = "on Cubrid it is not possible to enumerate password hashes" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getStatements(self): warnMsg = "on Cubrid it is not possible to enumerate the SQL statements" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def getRoles(self, *args, **kwargs): warnMsg = "on Cubrid it is not possible to enumerate the user roles" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getHostname(self): warnMsg = "on Cubrid it is not possible to enumerate the hostname" - logger.warn(warnMsg) + logger.warning(warnMsg) diff --git a/plugins/dbms/cubrid/fingerprint.py b/plugins/dbms/cubrid/fingerprint.py index c551580e3..14e342159 100644 --- a/plugins/dbms/cubrid/fingerprint.py +++ b/plugins/dbms/cubrid/fingerprint.py @@ -78,7 +78,7 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "the back-end DBMS is not %s" % DBMS.CUBRID - logger.warn(warnMsg) + logger.warning(warnMsg) return False @@ -89,6 +89,6 @@ class Fingerprint(GenericFingerprint): return True else: warnMsg = "the back-end DBMS is not %s" % DBMS.CUBRID - logger.warn(warnMsg) + logger.warning(warnMsg) return False diff --git a/plugins/dbms/db2/enumeration.py b/plugins/dbms/db2/enumeration.py index cd24a6d02..c5bd233fc 100644 --- a/plugins/dbms/db2/enumeration.py +++ b/plugins/dbms/db2/enumeration.py @@ -11,12 +11,12 @@ from plugins.generic.enumeration import Enumeration as GenericEnumeration class Enumeration(GenericEnumeration): def getPasswordHashes(self): warnMsg = "on IBM DB2 it is not possible to enumerate password hashes" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getStatements(self): warnMsg = "on IBM DB2 it is not possible to enumerate the SQL statements" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] diff --git a/plugins/dbms/db2/fingerprint.py b/plugins/dbms/db2/fingerprint.py index 4b5e114d6..5f53ff19a 100644 --- a/plugins/dbms/db2/fingerprint.py +++ b/plugins/dbms/db2/fingerprint.py @@ -101,7 +101,7 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "the back-end DBMS is not %s" % DBMS.DB2 - logger.warn(warnMsg) + logger.warning(warnMsg) return False @@ -115,7 +115,7 @@ class Fingerprint(GenericFingerprint): return True else: warnMsg = "the back-end DBMS is not %s" % DBMS.DB2 - logger.warn(warnMsg) + logger.warning(warnMsg) return False diff --git a/plugins/dbms/derby/enumeration.py b/plugins/dbms/derby/enumeration.py index fe7a448f0..8bddb5472 100644 --- a/plugins/dbms/derby/enumeration.py +++ b/plugins/dbms/derby/enumeration.py @@ -12,31 +12,31 @@ from plugins.generic.enumeration import Enumeration as GenericEnumeration class Enumeration(GenericEnumeration): def getPasswordHashes(self): warnMsg = "on Apache Derby it is not possible to enumerate password hashes" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getStatements(self): warnMsg = "on Apache Derby it is not possible to enumerate the SQL statements" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def getPrivileges(self, *args, **kwargs): warnMsg = "on Apache Derby it is not possible to enumerate the user privileges" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getRoles(self, *args, **kwargs): warnMsg = "on Apache Derby it is not possible to enumerate the user roles" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getHostname(self): warnMsg = "on Apache Derby it is not possible to enumerate the hostname" - logger.warn(warnMsg) + logger.warning(warnMsg) def getBanner(self): warnMsg = "on Apache Derby it is not possible to enumerate the banner" diff --git a/plugins/dbms/derby/fingerprint.py b/plugins/dbms/derby/fingerprint.py index 00fb5d27d..c9cb3c0bc 100644 --- a/plugins/dbms/derby/fingerprint.py +++ b/plugins/dbms/derby/fingerprint.py @@ -78,7 +78,7 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "the back-end DBMS is not %s" % DBMS.DERBY - logger.warn(warnMsg) + logger.warning(warnMsg) return False @@ -89,6 +89,6 @@ class Fingerprint(GenericFingerprint): return True else: warnMsg = "the back-end DBMS is not %s" % DBMS.DERBY - logger.warn(warnMsg) + logger.warning(warnMsg) return False diff --git a/plugins/dbms/extremedb/enumeration.py b/plugins/dbms/extremedb/enumeration.py index a791d37dc..2f3e0aff5 100644 --- a/plugins/dbms/extremedb/enumeration.py +++ b/plugins/dbms/extremedb/enumeration.py @@ -11,74 +11,74 @@ from plugins.generic.enumeration import Enumeration as GenericEnumeration class Enumeration(GenericEnumeration): def getBanner(self): warnMsg = "on eXtremeDB it is not possible to get the banner" - logger.warn(warnMsg) + logger.warning(warnMsg) return None def getCurrentUser(self): warnMsg = "on eXtremeDB it is not possible to enumerate the current user" - logger.warn(warnMsg) + logger.warning(warnMsg) def getCurrentDb(self): warnMsg = "on eXtremeDB it is not possible to get name of the current database" - logger.warn(warnMsg) + logger.warning(warnMsg) def isDba(self, user=None): warnMsg = "on eXtremeDB it is not possible to test if current user is DBA" - logger.warn(warnMsg) + logger.warning(warnMsg) def getUsers(self): warnMsg = "on eXtremeDB it is not possible to enumerate the users" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def getPasswordHashes(self): warnMsg = "on eXtremeDB it is not possible to enumerate the user password hashes" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getPrivileges(self, *args, **kwargs): warnMsg = "on eXtremeDB it is not possible to enumerate the user privileges" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getDbs(self): warnMsg = "on eXtremeDB it is not possible to enumerate databases (use only '--tables')" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def searchDb(self): warnMsg = "on eXtremeDB it is not possible to search databases" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def searchTable(self): warnMsg = "on eXtremeDB it is not possible to search tables" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def searchColumn(self): warnMsg = "on eXtremeDB it is not possible to search columns" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def search(self): warnMsg = "on eXtremeDB search option is not available" - logger.warn(warnMsg) + logger.warning(warnMsg) def getHostname(self): warnMsg = "on eXtremeDB it is not possible to enumerate the hostname" - logger.warn(warnMsg) + logger.warning(warnMsg) def getStatements(self): warnMsg = "on eXtremeDB it is not possible to enumerate the SQL statements" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] diff --git a/plugins/dbms/extremedb/fingerprint.py b/plugins/dbms/extremedb/fingerprint.py index 9ad66b287..3ac51e2f4 100644 --- a/plugins/dbms/extremedb/fingerprint.py +++ b/plugins/dbms/extremedb/fingerprint.py @@ -76,7 +76,7 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "the back-end DBMS is not %s" % DBMS.EXTREMEDB - logger.warn(warnMsg) + logger.warning(warnMsg) return False @@ -85,7 +85,7 @@ class Fingerprint(GenericFingerprint): return True else: warnMsg = "the back-end DBMS is not %s" % DBMS.EXTREMEDB - logger.warn(warnMsg) + logger.warning(warnMsg) return False diff --git a/plugins/dbms/firebird/enumeration.py b/plugins/dbms/firebird/enumeration.py index cfe5e3a4f..6da166bb3 100644 --- a/plugins/dbms/firebird/enumeration.py +++ b/plugins/dbms/firebird/enumeration.py @@ -11,28 +11,28 @@ from plugins.generic.enumeration import Enumeration as GenericEnumeration class Enumeration(GenericEnumeration): def getDbs(self): warnMsg = "on Firebird it is not possible to enumerate databases (use only '--tables')" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def getPasswordHashes(self): warnMsg = "on Firebird it is not possible to enumerate the user password hashes" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def searchDb(self): warnMsg = "on Firebird it is not possible to search databases" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def getHostname(self): warnMsg = "on Firebird it is not possible to enumerate the hostname" - logger.warn(warnMsg) + logger.warning(warnMsg) def getStatements(self): warnMsg = "on Firebird it is not possible to enumerate the SQL statements" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] diff --git a/plugins/dbms/firebird/fingerprint.py b/plugins/dbms/firebird/fingerprint.py index 92deec5cf..2b0b4d46a 100644 --- a/plugins/dbms/firebird/fingerprint.py +++ b/plugins/dbms/firebird/fingerprint.py @@ -126,7 +126,7 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "the back-end DBMS is not %s" % DBMS.FIREBIRD - logger.warn(warnMsg) + logger.warning(warnMsg) return False @@ -146,7 +146,7 @@ class Fingerprint(GenericFingerprint): return True else: warnMsg = "the back-end DBMS is not %s" % DBMS.FIREBIRD - logger.warn(warnMsg) + logger.warning(warnMsg) return False diff --git a/plugins/dbms/frontbase/enumeration.py b/plugins/dbms/frontbase/enumeration.py index e2377dd47..0542df427 100644 --- a/plugins/dbms/frontbase/enumeration.py +++ b/plugins/dbms/frontbase/enumeration.py @@ -11,22 +11,22 @@ from plugins.generic.enumeration import Enumeration as GenericEnumeration class Enumeration(GenericEnumeration): def getBanner(self): warnMsg = "on FrontBase it is not possible to get the banner" - logger.warn(warnMsg) + logger.warning(warnMsg) return None def getPrivileges(self, *args, **kwargs): warnMsg = "on FrontBase it is not possible to enumerate the user privileges" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getHostname(self): warnMsg = "on FrontBase it is not possible to enumerate the hostname" - logger.warn(warnMsg) + logger.warning(warnMsg) def getStatements(self): warnMsg = "on FrontBase it is not possible to enumerate the SQL statements" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] diff --git a/plugins/dbms/frontbase/fingerprint.py b/plugins/dbms/frontbase/fingerprint.py index 96578eb40..5f142b982 100644 --- a/plugins/dbms/frontbase/fingerprint.py +++ b/plugins/dbms/frontbase/fingerprint.py @@ -75,7 +75,7 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "the back-end DBMS is not %s" % DBMS.FRONTBASE - logger.warn(warnMsg) + logger.warning(warnMsg) return False @@ -84,6 +84,6 @@ class Fingerprint(GenericFingerprint): return True else: warnMsg = "the back-end DBMS is not %s" % DBMS.FRONTBASE - logger.warn(warnMsg) + logger.warning(warnMsg) return False diff --git a/plugins/dbms/h2/enumeration.py b/plugins/dbms/h2/enumeration.py index e58bf4386..81fb1a52a 100644 --- a/plugins/dbms/h2/enumeration.py +++ b/plugins/dbms/h2/enumeration.py @@ -31,25 +31,25 @@ class Enumeration(GenericEnumeration): def getPrivileges(self, *args, **kwargs): warnMsg = "on H2 it is not possible to enumerate the user privileges" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getHostname(self): warnMsg = "on H2 it is not possible to enumerate the hostname" - logger.warn(warnMsg) + logger.warning(warnMsg) def getCurrentDb(self): return H2_DEFAULT_SCHEMA def getPasswordHashes(self): warnMsg = "on H2 it is not possible to enumerate password hashes" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getStatements(self): warnMsg = "on H2 it is not possible to enumerate the SQL statements" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] diff --git a/plugins/dbms/h2/fingerprint.py b/plugins/dbms/h2/fingerprint.py index 80cf4a960..c1403e592 100644 --- a/plugins/dbms/h2/fingerprint.py +++ b/plugins/dbms/h2/fingerprint.py @@ -97,7 +97,7 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "the back-end DBMS is not %s" % DBMS.H2 - logger.warn(warnMsg) + logger.warning(warnMsg) return False else: @@ -108,10 +108,10 @@ class Fingerprint(GenericFingerprint): return True else: warnMsg = "the back-end DBMS is not %s" % DBMS.H2 - logger.warn(warnMsg) + logger.warning(warnMsg) return False def getHostname(self): warnMsg = "on H2 it is not possible to enumerate the hostname" - logger.warn(warnMsg) + logger.warning(warnMsg) diff --git a/plugins/dbms/hsqldb/enumeration.py b/plugins/dbms/hsqldb/enumeration.py index 30dab56ce..3692153ff 100644 --- a/plugins/dbms/hsqldb/enumeration.py +++ b/plugins/dbms/hsqldb/enumeration.py @@ -31,19 +31,19 @@ class Enumeration(GenericEnumeration): def getPrivileges(self, *args, **kwargs): warnMsg = "on HSQLDB it is not possible to enumerate the user privileges" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getHostname(self): warnMsg = "on HSQLDB it is not possible to enumerate the hostname" - logger.warn(warnMsg) + logger.warning(warnMsg) def getCurrentDb(self): return HSQLDB_DEFAULT_SCHEMA def getStatements(self): warnMsg = "on HSQLDB it is not possible to enumerate the SQL statements" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] diff --git a/plugins/dbms/hsqldb/filesystem.py b/plugins/dbms/hsqldb/filesystem.py index 9e365af34..abe6592ba 100644 --- a/plugins/dbms/hsqldb/filesystem.py +++ b/plugins/dbms/hsqldb/filesystem.py @@ -41,7 +41,7 @@ class Filesystem(GenericFilesystem): warnMsg += "to be written hexadecimal value is %d " % fcEncodedStrLen warnMsg += "bytes, this might cause errors in the file " warnMsg += "writing process" - logger.warn(warnMsg) + logger.warning(warnMsg) debugMsg = "exporting the %s file content to file '%s'" % (fileType, remoteFile) logger.debug(debugMsg) diff --git a/plugins/dbms/hsqldb/fingerprint.py b/plugins/dbms/hsqldb/fingerprint.py index 10976a6b0..348e5ba27 100644 --- a/plugins/dbms/hsqldb/fingerprint.py +++ b/plugins/dbms/hsqldb/fingerprint.py @@ -103,14 +103,14 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "the back-end DBMS is not %s" % DBMS.HSQLDB - logger.warn(warnMsg) + logger.warning(warnMsg) return False else: result = inject.checkBooleanExpression("ZERO() IS 0") # Note: check for H2 DBMS (sharing majority of same functions) if result: warnMsg = "the back-end DBMS is not %s" % DBMS.HSQLDB - logger.warn(warnMsg) + logger.warning(warnMsg) return False @@ -134,7 +134,7 @@ class Fingerprint(GenericFingerprint): return True else: warnMsg = "the back-end DBMS is not %s" % DBMS.HSQLDB - logger.warn(warnMsg) + logger.warning(warnMsg) dbgMsg = "...or version is < 1.7.2" logger.debug(dbgMsg) @@ -143,7 +143,7 @@ class Fingerprint(GenericFingerprint): def getHostname(self): warnMsg = "on HSQLDB it is not possible to enumerate the hostname" - logger.warn(warnMsg) + logger.warning(warnMsg) def checkDbmsOs(self, detailed=False): if Backend.getOs(): diff --git a/plugins/dbms/informix/enumeration.py b/plugins/dbms/informix/enumeration.py index 2af9d3403..8e2d938c2 100644 --- a/plugins/dbms/informix/enumeration.py +++ b/plugins/dbms/informix/enumeration.py @@ -11,28 +11,28 @@ from plugins.generic.enumeration import Enumeration as GenericEnumeration class Enumeration(GenericEnumeration): def searchDb(self): warnMsg = "on Informix searching of databases is not implemented" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def searchTable(self): warnMsg = "on Informix searching of tables is not implemented" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def searchColumn(self): warnMsg = "on Informix searching of columns is not implemented" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def search(self): warnMsg = "on Informix search option is not available" - logger.warn(warnMsg) + logger.warning(warnMsg) def getStatements(self): warnMsg = "on Informix it is not possible to enumerate the SQL statements" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] diff --git a/plugins/dbms/informix/fingerprint.py b/plugins/dbms/informix/fingerprint.py index e2d6d36af..843dc0532 100644 --- a/plugins/dbms/informix/fingerprint.py +++ b/plugins/dbms/informix/fingerprint.py @@ -78,7 +78,7 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "the back-end DBMS is not %s" % DBMS.INFORMIX - logger.warn(warnMsg) + logger.warning(warnMsg) return False @@ -106,6 +106,6 @@ class Fingerprint(GenericFingerprint): return True else: warnMsg = "the back-end DBMS is not %s" % DBMS.INFORMIX - logger.warn(warnMsg) + logger.warning(warnMsg) return False diff --git a/plugins/dbms/maxdb/enumeration.py b/plugins/dbms/maxdb/enumeration.py index d638cd0f4..f6dcf2042 100644 --- a/plugins/dbms/maxdb/enumeration.py +++ b/plugins/dbms/maxdb/enumeration.py @@ -37,7 +37,7 @@ class Enumeration(GenericEnumeration): def getPasswordHashes(self): warnMsg = "on SAP MaxDB it is not possible to enumerate the user password hashes" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} @@ -108,7 +108,7 @@ class Enumeration(GenericEnumeration): warnMsg = "missing database parameter. sqlmap is going " warnMsg += "to use the current database to enumerate " warnMsg += "table(s) columns" - logger.warn(warnMsg) + logger.warning(warnMsg) conf.db = self.getCurrentDb() @@ -226,20 +226,20 @@ class Enumeration(GenericEnumeration): def getPrivileges(self, *args, **kwargs): warnMsg = "on SAP MaxDB it is not possible to enumerate the user privileges" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def search(self): warnMsg = "on SAP MaxDB search option is not available" - logger.warn(warnMsg) + logger.warning(warnMsg) def getHostname(self): warnMsg = "on SAP MaxDB it is not possible to enumerate the hostname" - logger.warn(warnMsg) + logger.warning(warnMsg) def getStatements(self): warnMsg = "on SAP MaxDB it is not possible to enumerate the SQL statements" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] diff --git a/plugins/dbms/maxdb/fingerprint.py b/plugins/dbms/maxdb/fingerprint.py index 7af228a4d..5dcea6a48 100644 --- a/plugins/dbms/maxdb/fingerprint.py +++ b/plugins/dbms/maxdb/fingerprint.py @@ -34,7 +34,7 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "unable to perform %s version check" % DBMS.MAXDB - logger.warn(warnMsg) + logger.warning(warnMsg) return None @@ -112,7 +112,7 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "the back-end DBMS is not %s" % DBMS.MAXDB - logger.warn(warnMsg) + logger.warning(warnMsg) return False @@ -123,7 +123,7 @@ class Fingerprint(GenericFingerprint): return True else: warnMsg = "the back-end DBMS is not %s" % DBMS.MAXDB - logger.warn(warnMsg) + logger.warning(warnMsg) return False diff --git a/plugins/dbms/mckoi/enumeration.py b/plugins/dbms/mckoi/enumeration.py index 50ef81db7..a4ddb06ca 100644 --- a/plugins/dbms/mckoi/enumeration.py +++ b/plugins/dbms/mckoi/enumeration.py @@ -11,74 +11,74 @@ from plugins.generic.enumeration import Enumeration as GenericEnumeration class Enumeration(GenericEnumeration): def getBanner(self): warnMsg = "on Mckoi it is not possible to get the banner" - logger.warn(warnMsg) + logger.warning(warnMsg) return None def getCurrentUser(self): warnMsg = "on Mckoi it is not possible to enumerate the current user" - logger.warn(warnMsg) + logger.warning(warnMsg) def getCurrentDb(self): warnMsg = "on Mckoi it is not possible to get name of the current database" - logger.warn(warnMsg) + logger.warning(warnMsg) def isDba(self, user=None): warnMsg = "on Mckoi it is not possible to test if current user is DBA" - logger.warn(warnMsg) + logger.warning(warnMsg) def getUsers(self): warnMsg = "on Mckoi it is not possible to enumerate the users" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def getPasswordHashes(self): warnMsg = "on Mckoi it is not possible to enumerate the user password hashes" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getPrivileges(self, *args, **kwargs): warnMsg = "on Mckoi it is not possible to enumerate the user privileges" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getDbs(self): warnMsg = "on Mckoi it is not possible to enumerate databases (use only '--tables')" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def searchDb(self): warnMsg = "on Mckoi it is not possible to search databases" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def searchTable(self): warnMsg = "on Mckoi it is not possible to search tables" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def searchColumn(self): warnMsg = "on Mckoi it is not possible to search columns" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def search(self): warnMsg = "on Mckoi search option is not available" - logger.warn(warnMsg) + logger.warning(warnMsg) def getHostname(self): warnMsg = "on Mckoi it is not possible to enumerate the hostname" - logger.warn(warnMsg) + logger.warning(warnMsg) def getStatements(self): warnMsg = "on Mckoi it is not possible to enumerate the SQL statements" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] diff --git a/plugins/dbms/mckoi/fingerprint.py b/plugins/dbms/mckoi/fingerprint.py index eaf7d6abc..6bdace647 100644 --- a/plugins/dbms/mckoi/fingerprint.py +++ b/plugins/dbms/mckoi/fingerprint.py @@ -76,7 +76,7 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "the back-end DBMS is not %s" % DBMS.MCKOI - logger.warn(warnMsg) + logger.warning(warnMsg) return False @@ -85,7 +85,7 @@ class Fingerprint(GenericFingerprint): return True else: warnMsg = "the back-end DBMS is not %s" % DBMS.MCKOI - logger.warn(warnMsg) + logger.warning(warnMsg) return False diff --git a/plugins/dbms/mimersql/enumeration.py b/plugins/dbms/mimersql/enumeration.py index faf572cae..b27f593aa 100644 --- a/plugins/dbms/mimersql/enumeration.py +++ b/plugins/dbms/mimersql/enumeration.py @@ -11,22 +11,22 @@ from plugins.generic.enumeration import Enumeration as GenericEnumeration class Enumeration(GenericEnumeration): def getPasswordHashes(self): warnMsg = "on MimerSQL it is not possible to enumerate password hashes" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getStatements(self): warnMsg = "on MimerSQL it is not possible to enumerate the SQL statements" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def getRoles(self, *args, **kwargs): warnMsg = "on MimerSQL it is not possible to enumerate the user roles" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getHostname(self): warnMsg = "on MimerSQL it is not possible to enumerate the hostname" - logger.warn(warnMsg) + logger.warning(warnMsg) diff --git a/plugins/dbms/mimersql/fingerprint.py b/plugins/dbms/mimersql/fingerprint.py index 980e8feb2..6e367a1ae 100644 --- a/plugins/dbms/mimersql/fingerprint.py +++ b/plugins/dbms/mimersql/fingerprint.py @@ -78,7 +78,7 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "the back-end DBMS is not %s" % DBMS.MIMERSQL - logger.warn(warnMsg) + logger.warning(warnMsg) return False @@ -89,6 +89,6 @@ class Fingerprint(GenericFingerprint): return True else: warnMsg = "the back-end DBMS is not %s" % DBMS.MIMERSQL - logger.warn(warnMsg) + logger.warning(warnMsg) return False diff --git a/plugins/dbms/monetdb/enumeration.py b/plugins/dbms/monetdb/enumeration.py index ac0b92e49..570785e23 100644 --- a/plugins/dbms/monetdb/enumeration.py +++ b/plugins/dbms/monetdb/enumeration.py @@ -11,28 +11,28 @@ from plugins.generic.enumeration import Enumeration as GenericEnumeration class Enumeration(GenericEnumeration): def getPasswordHashes(self): warnMsg = "on MonetDB it is not possible to enumerate password hashes" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getStatements(self): warnMsg = "on MonetDB it is not possible to enumerate the SQL statements" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def getPrivileges(self, *args, **kwargs): warnMsg = "on MonetDB it is not possible to enumerate the user privileges" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getRoles(self, *args, **kwargs): warnMsg = "on MonetDB it is not possible to enumerate the user roles" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getHostname(self): warnMsg = "on MonetDB it is not possible to enumerate the hostname" - logger.warn(warnMsg) + logger.warning(warnMsg) diff --git a/plugins/dbms/monetdb/fingerprint.py b/plugins/dbms/monetdb/fingerprint.py index 9aa31b875..85d0a1591 100644 --- a/plugins/dbms/monetdb/fingerprint.py +++ b/plugins/dbms/monetdb/fingerprint.py @@ -78,7 +78,7 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "the back-end DBMS is not %s" % DBMS.MONETDB - logger.warn(warnMsg) + logger.warning(warnMsg) return False @@ -89,6 +89,6 @@ class Fingerprint(GenericFingerprint): return True else: warnMsg = "the back-end DBMS is not %s" % DBMS.MONETDB - logger.warn(warnMsg) + logger.warning(warnMsg) return False diff --git a/plugins/dbms/mssqlserver/enumeration.py b/plugins/dbms/mssqlserver/enumeration.py index df1499fc6..6654fe67b 100644 --- a/plugins/dbms/mssqlserver/enumeration.py +++ b/plugins/dbms/mssqlserver/enumeration.py @@ -39,7 +39,7 @@ class Enumeration(GenericEnumeration): warnMsg = "on Microsoft SQL Server it is not possible to fetch " warnMsg += "database users privileges, sqlmap will check whether " warnMsg += "or not the database users are database administrators" - logger.warn(warnMsg) + logger.warning(warnMsg) users = [] areAdmins = set() @@ -140,7 +140,7 @@ class Enumeration(GenericEnumeration): if count != 0: warnMsg = "unable to retrieve the number of " warnMsg += "tables for database '%s'" % db - logger.warn(warnMsg) + logger.warning(warnMsg) continue tables = [] @@ -159,7 +159,7 @@ class Enumeration(GenericEnumeration): else: warnMsg = "unable to retrieve the tables " warnMsg += "for database '%s'" % db - logger.warn(warnMsg) + logger.warning(warnMsg) if not kb.data.cachedTables and not conf.search: errMsg = "unable to retrieve the tables for any database" @@ -248,7 +248,7 @@ class Enumeration(GenericEnumeration): warnMsg += "s LIKE" warnMsg += " '%s' " % unsafeSQLIdentificatorNaming(tbl) warnMsg += "in database '%s'" % unsafeSQLIdentificatorNaming(db) - logger.warn(warnMsg) + logger.warning(warnMsg) continue @@ -269,7 +269,7 @@ class Enumeration(GenericEnumeration): if not foundTbls: warnMsg = "no databases contain any of the provided tables" - logger.warn(warnMsg) + logger.warning(warnMsg) return conf.dumper.dbTables(foundTbls) @@ -407,7 +407,7 @@ class Enumeration(GenericEnumeration): warnMsg += "s LIKE" warnMsg += " '%s' " % column warnMsg += "in database '%s'" % db - logger.warn(warnMsg) + logger.warning(warnMsg) continue diff --git a/plugins/dbms/mssqlserver/fingerprint.py b/plugins/dbms/mssqlserver/fingerprint.py index 3686c177e..d96e9408c 100644 --- a/plugins/dbms/mssqlserver/fingerprint.py +++ b/plugins/dbms/mssqlserver/fingerprint.py @@ -117,7 +117,7 @@ class Fingerprint(GenericFingerprint): return True else: warnMsg = "the back-end DBMS is not %s" % DBMS.MSSQL - logger.warn(warnMsg) + logger.warning(warnMsg) return False @@ -172,7 +172,7 @@ class Fingerprint(GenericFingerprint): warnMsg = "unable to fingerprint the underlying operating " warnMsg += "system version, assuming it is Windows " warnMsg += "%s Service Pack %d" % (Backend.getOsVersion(), Backend.getOsServicePack()) - logger.warn(warnMsg) + logger.warning(warnMsg) self.cleanup(onlyFileTbl=True) diff --git a/plugins/dbms/mysql/filesystem.py b/plugins/dbms/mysql/filesystem.py index f35c3f668..8dfb5fb7c 100644 --- a/plugins/dbms/mysql/filesystem.py +++ b/plugins/dbms/mysql/filesystem.py @@ -68,7 +68,7 @@ class Filesystem(GenericFilesystem): if conf.direct or isTechniqueAvailable(PAYLOAD.TECHNIQUE.UNION): if not kb.bruteMode: warnMsg += ", going to fall-back to simpler UNION technique" - logger.warn(warnMsg) + logger.warning(warnMsg) result = self.nonStackedReadFile(remoteFile) else: raise SqlmapNoneDataException(warnMsg) @@ -100,7 +100,7 @@ class Filesystem(GenericFilesystem): warnMsg += "to be written hexadecimal value is %d " % fcEncodedStrLen warnMsg += "bytes, this might cause errors in the file " warnMsg += "writing process" - logger.warn(warnMsg) + logger.warning(warnMsg) debugMsg = "exporting the %s file content to file '%s'" % (fileType, remoteFile) logger.debug(debugMsg) @@ -129,7 +129,7 @@ class Filesystem(GenericFilesystem): warnMsg += "to be written hexadecimal value is %d " % fcEncodedStrLen warnMsg += "bytes, this might cause errors in the file " warnMsg += "writing process" - logger.warn(warnMsg) + logger.warning(warnMsg) debugMsg = "exporting the %s file content to file '%s'" % (fileType, remoteFile) logger.debug(debugMsg) diff --git a/plugins/dbms/mysql/fingerprint.py b/plugins/dbms/mysql/fingerprint.py index 85923e7de..c9aae79c5 100644 --- a/plugins/dbms/mysql/fingerprint.py +++ b/plugins/dbms/mysql/fingerprint.py @@ -37,7 +37,7 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "unable to perform %s comment injection" % DBMS.MYSQL - logger.warn(warnMsg) + logger.warning(warnMsg) return None @@ -192,7 +192,7 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "the back-end DBMS is not %s" % DBMS.MYSQL - logger.warn(warnMsg) + logger.warning(warnMsg) return False @@ -297,7 +297,7 @@ class Fingerprint(GenericFingerprint): return True else: warnMsg = "the back-end DBMS is not %s" % DBMS.MYSQL - logger.warn(warnMsg) + logger.warning(warnMsg) return False diff --git a/plugins/dbms/oracle/enumeration.py b/plugins/dbms/oracle/enumeration.py index 402a681cc..eac989b59 100644 --- a/plugins/dbms/oracle/enumeration.py +++ b/plugins/dbms/oracle/enumeration.py @@ -124,7 +124,7 @@ class Enumeration(GenericEnumeration): warnMsg = "unable to retrieve the number of " warnMsg += "roles for user '%s'" % user - logger.warn(warnMsg) + logger.warning(warnMsg) continue infoMsg = "fetching roles for user '%s'" % user @@ -149,7 +149,7 @@ class Enumeration(GenericEnumeration): else: warnMsg = "unable to retrieve the roles " warnMsg += "for user '%s'" % user - logger.warn(warnMsg) + logger.warning(warnMsg) retrievedUsers.add(user) diff --git a/plugins/dbms/oracle/fingerprint.py b/plugins/dbms/oracle/fingerprint.py index 29ac87928..5b9061cb5 100644 --- a/plugins/dbms/oracle/fingerprint.py +++ b/plugins/dbms/oracle/fingerprint.py @@ -90,7 +90,7 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "the back-end DBMS is not %s" % DBMS.ORACLE - logger.warn(warnMsg) + logger.warning(warnMsg) return False @@ -116,7 +116,7 @@ class Fingerprint(GenericFingerprint): return True else: warnMsg = "the back-end DBMS is not %s" % DBMS.ORACLE - logger.warn(warnMsg) + logger.warning(warnMsg) return False diff --git a/plugins/dbms/postgresql/connector.py b/plugins/dbms/postgresql/connector.py index c21507325..2b9b77829 100644 --- a/plugins/dbms/postgresql/connector.py +++ b/plugins/dbms/postgresql/connector.py @@ -46,7 +46,7 @@ class Connector(GenericConnector): try: return self.cursor.fetchall() except psycopg2.ProgrammingError as ex: - logger.warn(getSafeExString(ex)) + logger.warning(getSafeExString(ex)) return None def execute(self, query): @@ -56,7 +56,7 @@ class Connector(GenericConnector): self.cursor.execute(query) retVal = True except (psycopg2.OperationalError, psycopg2.ProgrammingError) as ex: - logger.warn(("(remote) '%s'" % getSafeExString(ex)).strip()) + logger.warning(("(remote) '%s'" % getSafeExString(ex)).strip()) except psycopg2.InternalError as ex: raise SqlmapConnectionException(getSafeExString(ex)) diff --git a/plugins/dbms/postgresql/enumeration.py b/plugins/dbms/postgresql/enumeration.py index c658a2ad6..665d7b939 100644 --- a/plugins/dbms/postgresql/enumeration.py +++ b/plugins/dbms/postgresql/enumeration.py @@ -12,4 +12,4 @@ from plugins.generic.enumeration import Enumeration as GenericEnumeration class Enumeration(GenericEnumeration): def getHostname(self): warnMsg = "on PostgreSQL it is not possible to enumerate the hostname" - logger.warn(warnMsg) + logger.warning(warnMsg) diff --git a/plugins/dbms/postgresql/fingerprint.py b/plugins/dbms/postgresql/fingerprint.py index f4c1b91b2..93696c9d3 100644 --- a/plugins/dbms/postgresql/fingerprint.py +++ b/plugins/dbms/postgresql/fingerprint.py @@ -117,7 +117,7 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "the back-end DBMS is not %s" % DBMS.PGSQL - logger.warn(warnMsg) + logger.warning(warnMsg) return False @@ -187,7 +187,7 @@ class Fingerprint(GenericFingerprint): return True else: warnMsg = "the back-end DBMS is not %s" % DBMS.PGSQL - logger.warn(warnMsg) + logger.warning(warnMsg) return False diff --git a/plugins/dbms/presto/enumeration.py b/plugins/dbms/presto/enumeration.py index 919a50760..36b10cc31 100644 --- a/plugins/dbms/presto/enumeration.py +++ b/plugins/dbms/presto/enumeration.py @@ -11,48 +11,48 @@ from plugins.generic.enumeration import Enumeration as GenericEnumeration class Enumeration(GenericEnumeration): def getBanner(self): warnMsg = "on Presto it is not possible to get the banner" - logger.warn(warnMsg) + logger.warning(warnMsg) return None def getCurrentDb(self): warnMsg = "on Presto it is not possible to get name of the current database (schema)" - logger.warn(warnMsg) + logger.warning(warnMsg) def isDba(self, user=None): warnMsg = "on Presto it is not possible to test if current user is DBA" - logger.warn(warnMsg) + logger.warning(warnMsg) def getUsers(self): warnMsg = "on Presto it is not possible to enumerate the users" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def getPasswordHashes(self): warnMsg = "on Presto it is not possible to enumerate the user password hashes" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getPrivileges(self, *args, **kwargs): warnMsg = "on Presto it is not possible to enumerate the user privileges" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getRoles(self, *args, **kwargs): warnMsg = "on Presto it is not possible to enumerate the user roles" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getHostname(self): warnMsg = "on Presto it is not possible to enumerate the hostname" - logger.warn(warnMsg) + logger.warning(warnMsg) def getStatements(self): warnMsg = "on Presto it is not possible to enumerate the SQL statements" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] diff --git a/plugins/dbms/presto/fingerprint.py b/plugins/dbms/presto/fingerprint.py index 27183649d..f93a877f3 100644 --- a/plugins/dbms/presto/fingerprint.py +++ b/plugins/dbms/presto/fingerprint.py @@ -78,7 +78,7 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "the back-end DBMS is not %s" % DBMS.PRESTO - logger.warn(warnMsg) + logger.warning(warnMsg) return False @@ -132,6 +132,6 @@ class Fingerprint(GenericFingerprint): return True else: warnMsg = "the back-end DBMS is not %s" % DBMS.PRESTO - logger.warn(warnMsg) + logger.warning(warnMsg) return False diff --git a/plugins/dbms/raima/enumeration.py b/plugins/dbms/raima/enumeration.py index ba54513b7..ac0d73f09 100644 --- a/plugins/dbms/raima/enumeration.py +++ b/plugins/dbms/raima/enumeration.py @@ -11,74 +11,74 @@ from plugins.generic.enumeration import Enumeration as GenericEnumeration class Enumeration(GenericEnumeration): def getBanner(self): warnMsg = "on Raima Database Manager it is not possible to get the banner" - logger.warn(warnMsg) + logger.warning(warnMsg) return None def getCurrentUser(self): warnMsg = "on Raima Database Manager it is not possible to enumerate the current user" - logger.warn(warnMsg) + logger.warning(warnMsg) def getCurrentDb(self): warnMsg = "on Raima Database Manager it is not possible to get name of the current database" - logger.warn(warnMsg) + logger.warning(warnMsg) def isDba(self, user=None): warnMsg = "on Raima Database Manager it is not possible to test if current user is DBA" - logger.warn(warnMsg) + logger.warning(warnMsg) def getUsers(self): warnMsg = "on Raima Database Manager it is not possible to enumerate the users" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def getPasswordHashes(self): warnMsg = "on Raima Database Manager it is not possible to enumerate the user password hashes" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getPrivileges(self, *args, **kwargs): warnMsg = "on Raima Database Manager it is not possible to enumerate the user privileges" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getDbs(self): warnMsg = "on Raima Database Manager it is not possible to enumerate databases (use only '--tables')" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def searchDb(self): warnMsg = "on Raima Database Manager it is not possible to search databases" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def searchTable(self): warnMsg = "on Raima Database Manager it is not possible to search tables" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def searchColumn(self): warnMsg = "on Raima Database Manager it is not possible to search columns" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def search(self): warnMsg = "on Raima Database Manager search option is not available" - logger.warn(warnMsg) + logger.warning(warnMsg) def getHostname(self): warnMsg = "on Raima Database Manager it is not possible to enumerate the hostname" - logger.warn(warnMsg) + logger.warning(warnMsg) def getStatements(self): warnMsg = "on Raima Database Manager it is not possible to enumerate the SQL statements" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] diff --git a/plugins/dbms/raima/fingerprint.py b/plugins/dbms/raima/fingerprint.py index a8d28e205..7d5d6a66f 100644 --- a/plugins/dbms/raima/fingerprint.py +++ b/plugins/dbms/raima/fingerprint.py @@ -76,7 +76,7 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "the back-end DBMS is not %s" % DBMS.RAIMA - logger.warn(warnMsg) + logger.warning(warnMsg) return False @@ -85,7 +85,7 @@ class Fingerprint(GenericFingerprint): return True else: warnMsg = "the back-end DBMS is not %s" % DBMS.RAIMA - logger.warn(warnMsg) + logger.warning(warnMsg) return False diff --git a/plugins/dbms/sqlite/connector.py b/plugins/dbms/sqlite/connector.py index ce30043f8..ef5ea1da3 100644 --- a/plugins/dbms/sqlite/connector.py +++ b/plugins/dbms/sqlite/connector.py @@ -48,7 +48,7 @@ class Connector(GenericConnector): except (self.__sqlite.DatabaseError, self.__sqlite.OperationalError): warnMsg = "unable to connect using SQLite 3 library, trying with SQLite 2" - logger.warn(warnMsg) + logger.warning(warnMsg) try: try: diff --git a/plugins/dbms/sqlite/enumeration.py b/plugins/dbms/sqlite/enumeration.py index a52772e1c..2e801d7e5 100644 --- a/plugins/dbms/sqlite/enumeration.py +++ b/plugins/dbms/sqlite/enumeration.py @@ -12,45 +12,45 @@ from plugins.generic.enumeration import Enumeration as GenericEnumeration class Enumeration(GenericEnumeration): def getCurrentUser(self): warnMsg = "on SQLite it is not possible to enumerate the current user" - logger.warn(warnMsg) + logger.warning(warnMsg) def getCurrentDb(self): warnMsg = "on SQLite it is not possible to get name of the current database" - logger.warn(warnMsg) + logger.warning(warnMsg) def isDba(self, user=None): warnMsg = "on SQLite the current user has all privileges" - logger.warn(warnMsg) + logger.warning(warnMsg) return True def getUsers(self): warnMsg = "on SQLite it is not possible to enumerate the users" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def getPasswordHashes(self): warnMsg = "on SQLite it is not possible to enumerate the user password hashes" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getPrivileges(self, *args, **kwargs): warnMsg = "on SQLite it is not possible to enumerate the user privileges" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getDbs(self): warnMsg = "on SQLite it is not possible to enumerate databases (use only '--tables')" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def searchDb(self): warnMsg = "on SQLite it is not possible to search databases" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] @@ -60,10 +60,10 @@ class Enumeration(GenericEnumeration): def getHostname(self): warnMsg = "on SQLite it is not possible to enumerate the hostname" - logger.warn(warnMsg) + logger.warning(warnMsg) def getStatements(self): warnMsg = "on SQLite it is not possible to enumerate the SQL statements" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] diff --git a/plugins/dbms/sqlite/fingerprint.py b/plugins/dbms/sqlite/fingerprint.py index 5984ea136..24de50c24 100644 --- a/plugins/dbms/sqlite/fingerprint.py +++ b/plugins/dbms/sqlite/fingerprint.py @@ -86,7 +86,7 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "the back-end DBMS is not %s" % DBMS.SQLITE - logger.warn(warnMsg) + logger.warning(warnMsg) return False else: @@ -104,7 +104,7 @@ class Fingerprint(GenericFingerprint): return True else: warnMsg = "the back-end DBMS is not %s" % DBMS.SQLITE - logger.warn(warnMsg) + logger.warning(warnMsg) return False diff --git a/plugins/dbms/sybase/enumeration.py b/plugins/dbms/sybase/enumeration.py index f00a1c619..dda39514a 100644 --- a/plugins/dbms/sybase/enumeration.py +++ b/plugins/dbms/sybase/enumeration.py @@ -59,7 +59,7 @@ class Enumeration(GenericEnumeration): warnMsg = "on Sybase it is not possible to fetch " warnMsg += "database users privileges, sqlmap will check whether " warnMsg += "or not the database users are database administrators" - logger.warn(warnMsg) + logger.warning(warnMsg) users = [] areAdmins = set() @@ -169,7 +169,7 @@ class Enumeration(GenericEnumeration): warnMsg = "missing database parameter. sqlmap is going " warnMsg += "to use the current database to enumerate " warnMsg += "table(s) columns" - logger.warn(warnMsg) + logger.warning(warnMsg) conf.db = self.getCurrentDb() @@ -295,32 +295,32 @@ class Enumeration(GenericEnumeration): def searchDb(self): warnMsg = "on Sybase searching of databases is not implemented" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def searchTable(self): warnMsg = "on Sybase searching of tables is not implemented" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def searchColumn(self): warnMsg = "on Sybase searching of columns is not implemented" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def search(self): warnMsg = "on Sybase search option is not available" - logger.warn(warnMsg) + logger.warning(warnMsg) def getHostname(self): warnMsg = "on Sybase it is not possible to enumerate the hostname" - logger.warn(warnMsg) + logger.warning(warnMsg) def getStatements(self): warnMsg = "on Sybase it is not possible to enumerate the SQL statements" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] diff --git a/plugins/dbms/sybase/fingerprint.py b/plugins/dbms/sybase/fingerprint.py index f6be54f81..c34db3808 100644 --- a/plugins/dbms/sybase/fingerprint.py +++ b/plugins/dbms/sybase/fingerprint.py @@ -86,7 +86,7 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "the back-end DBMS is not %s" % DBMS.SYBASE - logger.warn(warnMsg) + logger.warning(warnMsg) return False @@ -115,6 +115,6 @@ class Fingerprint(GenericFingerprint): return True else: warnMsg = "the back-end DBMS is not %s" % DBMS.SYBASE - logger.warn(warnMsg) + logger.warning(warnMsg) return False diff --git a/plugins/dbms/vertica/enumeration.py b/plugins/dbms/vertica/enumeration.py index 6cd822402..33dee4043 100644 --- a/plugins/dbms/vertica/enumeration.py +++ b/plugins/dbms/vertica/enumeration.py @@ -11,6 +11,6 @@ from plugins.generic.enumeration import Enumeration as GenericEnumeration class Enumeration(GenericEnumeration): def getRoles(self, *args, **kwargs): warnMsg = "on Vertica it is not possible to enumerate the user roles" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} diff --git a/plugins/dbms/vertica/fingerprint.py b/plugins/dbms/vertica/fingerprint.py index b528a9f78..b4666c614 100644 --- a/plugins/dbms/vertica/fingerprint.py +++ b/plugins/dbms/vertica/fingerprint.py @@ -79,7 +79,7 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "the back-end DBMS is not %s" % DBMS.VERTICA - logger.warn(warnMsg) + logger.warning(warnMsg) return False @@ -101,6 +101,6 @@ class Fingerprint(GenericFingerprint): return True else: warnMsg = "the back-end DBMS is not %s" % DBMS.VERTICA - logger.warn(warnMsg) + logger.warning(warnMsg) return False diff --git a/plugins/dbms/virtuoso/enumeration.py b/plugins/dbms/virtuoso/enumeration.py index a911edf3e..0b5eca36d 100644 --- a/plugins/dbms/virtuoso/enumeration.py +++ b/plugins/dbms/virtuoso/enumeration.py @@ -11,46 +11,46 @@ from plugins.generic.enumeration import Enumeration as GenericEnumeration class Enumeration(GenericEnumeration): def getPasswordHashes(self): warnMsg = "on Virtuoso it is not possible to enumerate the user password hashes" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getPrivileges(self, *args, **kwargs): warnMsg = "on Virtuoso it is not possible to enumerate the user privileges" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def getRoles(self, *args, **kwargs): warnMsg = "on Virtuoso it is not possible to enumerate the user roles" - logger.warn(warnMsg) + logger.warning(warnMsg) return {} def searchDb(self): warnMsg = "on Virtuoso it is not possible to search databases" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def searchTable(self): warnMsg = "on Virtuoso it is not possible to search tables" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def searchColumn(self): warnMsg = "on Virtuoso it is not possible to search columns" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] def search(self): warnMsg = "on Virtuoso search option is not available" - logger.warn(warnMsg) + logger.warning(warnMsg) def getStatements(self): warnMsg = "on Virtuoso it is not possible to enumerate the SQL statements" - logger.warn(warnMsg) + logger.warning(warnMsg) return [] diff --git a/plugins/dbms/virtuoso/fingerprint.py b/plugins/dbms/virtuoso/fingerprint.py index ad39d0972..e62c26b7c 100644 --- a/plugins/dbms/virtuoso/fingerprint.py +++ b/plugins/dbms/virtuoso/fingerprint.py @@ -75,7 +75,7 @@ class Fingerprint(GenericFingerprint): if not result: warnMsg = "the back-end DBMS is not %s" % DBMS.VIRTUOSO - logger.warn(warnMsg) + logger.warning(warnMsg) return False @@ -84,6 +84,6 @@ class Fingerprint(GenericFingerprint): return True else: warnMsg = "the back-end DBMS is not %s" % DBMS.VIRTUOSO - logger.warn(warnMsg) + logger.warning(warnMsg) return False diff --git a/plugins/generic/custom.py b/plugins/generic/custom.py index 09b72ef56..3002c0da1 100644 --- a/plugins/generic/custom.py +++ b/plugins/generic/custom.py @@ -65,7 +65,7 @@ class Custom(object): elif not isStackingAvailable() and not conf.direct: warnMsg = "execution of non-query SQL statements is only " warnMsg += "available when stacked queries are supported" - logger.warn(warnMsg) + logger.warning(warnMsg) return None else: @@ -80,7 +80,7 @@ class Custom(object): output = NULL except SqlmapNoneDataException as ex: - logger.warn(ex) + logger.warning(ex) return output diff --git a/plugins/generic/databases.py b/plugins/generic/databases.py index 5489fbbd3..32cfe28f0 100644 --- a/plugins/generic/databases.py +++ b/plugins/generic/databases.py @@ -106,13 +106,13 @@ class Databases(object): warnMsg = "information_schema not available, " warnMsg += "back-end DBMS is MySQL < 5. database " warnMsg += "names will be fetched from 'mysql' database" - logger.warn(warnMsg) + logger.warning(warnMsg) elif Backend.getIdentifiedDbms() in (DBMS.ORACLE, DBMS.DB2, DBMS.PGSQL, DBMS.MONETDB, DBMS.DERBY, DBMS.VERTICA, DBMS.PRESTO, DBMS.MIMERSQL, DBMS.CRATEDB, DBMS.CACHE, DBMS.FRONTBASE): warnMsg = "schema names are going to be used on %s " % Backend.getIdentifiedDbms() warnMsg += "for enumeration as the counterpart to database " warnMsg += "names on other DBMSes" - logger.warn(warnMsg) + logger.warning(warnMsg) infoMsg = "fetching database (schema) names" @@ -120,7 +120,7 @@ class Databases(object): warnMsg = "user names are going to be used on %s " % Backend.getIdentifiedDbms() warnMsg += "for enumeration as the counterpart to database " warnMsg += "names on other DBMSes" - logger.warn(warnMsg) + logger.warning(warnMsg) infoMsg = "fetching database (user) names" @@ -220,7 +220,7 @@ class Databases(object): if Backend.isDbms(DBMS.MYSQL) and not kb.data.has_information_schema: warnMsg = "information_schema not available, " warnMsg += "back-end DBMS is MySQL < 5.0" - logger.warn(warnMsg) + logger.warning(warnMsg) bruteForce = True elif Backend.getIdentifiedDbms() in (DBMS.MCKOI, DBMS.EXTREMEDB, DBMS.RAIMA): @@ -235,7 +235,7 @@ class Databases(object): if not tables: warnMsg = "cannot retrieve table names, " warnMsg += "back-end DBMS is %s" % Backend.getIdentifiedDbms() - logger.warn(warnMsg) + logger.warning(warnMsg) bruteForce = True else: return tables @@ -381,7 +381,7 @@ class Databases(object): if count == 0: warnMsg = "database '%s' " % unsafeSQLIdentificatorNaming(db) warnMsg += "appears to be empty" - logger.warn(warnMsg) + logger.warning(warnMsg) break elif not isNumPosStrValue(count): @@ -441,7 +441,7 @@ class Databases(object): else: warnMsg = "unable to retrieve the table names " warnMsg += "for database '%s'" % unsafeSQLIdentificatorNaming(db) - logger.warn(warnMsg) + logger.warning(warnMsg) if isNoneValue(kb.data.cachedTables): kb.data.cachedTables.clear() @@ -471,7 +471,7 @@ class Databases(object): warnMsg = "missing database parameter. sqlmap is going " warnMsg += "to use the current database to enumerate " warnMsg += "table(s) columns" - logger.warn(warnMsg) + logger.warning(warnMsg) conf.db = self.getCurrentDb() @@ -542,7 +542,7 @@ class Databases(object): if Backend.isDbms(DBMS.MYSQL) and not kb.data.has_information_schema: warnMsg = "information_schema not available, " warnMsg += "back-end DBMS is MySQL < 5.0" - logger.warn(warnMsg) + logger.warning(warnMsg) bruteForce = True elif Backend.getIdentifiedDbms() in (DBMS.ACCESS, DBMS.MCKOI, DBMS.EXTREMEDB, DBMS.RAIMA): @@ -925,7 +925,7 @@ class Databases(object): warnMsg += ("table '%s' " % unsafeSQLIdentificatorNaming(unArrayizeValue(tblList))) if len(tblList) == 1 else "any table " if METADB_SUFFIX not in conf.db: warnMsg += "in database '%s'" % unsafeSQLIdentificatorNaming(conf.db) - logger.warn(warnMsg) + logger.warning(warnMsg) if bruteForce is None: return self.getColumns(onlyColNames=onlyColNames, colTuple=colTuple, bruteForce=True) @@ -994,7 +994,7 @@ class Databases(object): warnMsg = "missing table parameter, sqlmap will retrieve " warnMsg += "the number of entries for all database " warnMsg += "management system databases' tables" - logger.warn(warnMsg) + logger.warning(warnMsg) elif "." in conf.tbl: if not conf.db: @@ -1004,7 +1004,7 @@ class Databases(object): warnMsg = "missing database parameter. sqlmap is going to " warnMsg += "use the current database to retrieve the " warnMsg += "number of entries for table '%s'" % unsafeSQLIdentificatorNaming(conf.tbl) - logger.warn(warnMsg) + logger.warning(warnMsg) conf.db = self.getCurrentDb() diff --git a/plugins/generic/entries.py b/plugins/generic/entries.py index 299774a4a..365fad204 100644 --- a/plugins/generic/entries.py +++ b/plugins/generic/entries.py @@ -68,7 +68,7 @@ class Entries(object): warnMsg = "missing database parameter. sqlmap is going " warnMsg += "to use the current database to enumerate " warnMsg += "table(s) entries" - logger.warn(warnMsg) + logger.warning(warnMsg) conf.db = self.getCurrentDb() @@ -142,7 +142,7 @@ class Entries(object): if METADB_SUFFIX not in conf.db: warnMsg += " in database '%s'" % unsafeSQLIdentificatorNaming(conf.db) warnMsg += ", skipping" if len(tblList) > 1 else "" - logger.warn(warnMsg) + logger.warning(warnMsg) continue @@ -157,7 +157,7 @@ class Entries(object): if METADB_SUFFIX not in conf.db: warnMsg += " in database '%s'" % unsafeSQLIdentificatorNaming(conf.db) warnMsg += " (no usable column names)" - logger.warn(warnMsg) + logger.warning(warnMsg) continue kb.dumpColumns = [unsafeSQLIdentificatorNaming(_) for _ in colList] @@ -222,7 +222,7 @@ class Entries(object): kb.dumpKeyboardInterrupt = True clearConsoleLine() warnMsg = "Ctrl+C detected in dumping phase" - logger.warn(warnMsg) + logger.warning(warnMsg) if isNoneValue(entries) and not kb.dumpKeyboardInterrupt: try: @@ -232,7 +232,7 @@ class Entries(object): kb.dumpKeyboardInterrupt = True clearConsoleLine() warnMsg = "Ctrl+C detected in dumping phase" - logger.warn(warnMsg) + logger.warning(warnMsg) if retVal: entries, _ = retVal @@ -254,7 +254,7 @@ class Entries(object): kb.dumpKeyboardInterrupt = True clearConsoleLine() warnMsg = "Ctrl+C detected in dumping phase" - logger.warn(warnMsg) + logger.warning(warnMsg) if not isNoneValue(entries): if isinstance(entries, six.string_types): @@ -314,7 +314,7 @@ class Entries(object): warnMsg = "table '%s' " % unsafeSQLIdentificatorNaming(tbl) warnMsg += "in database '%s' " % unsafeSQLIdentificatorNaming(conf.db) warnMsg += "appears to be empty" - logger.warn(warnMsg) + logger.warning(warnMsg) for column in colList: lengths[column] = len(column) @@ -326,7 +326,7 @@ class Entries(object): warnMsg += "column(s) '%s' " % colNames warnMsg += "entries for table '%s' " % unsafeSQLIdentificatorNaming(tbl) warnMsg += "in database '%s'" % unsafeSQLIdentificatorNaming(conf.db) - logger.warn(warnMsg) + logger.warning(warnMsg) continue @@ -366,7 +366,7 @@ class Entries(object): kb.dumpKeyboardInterrupt = True clearConsoleLine() warnMsg = "Ctrl+C detected in dumping phase" - logger.warn(warnMsg) + logger.warning(warnMsg) if not entries and not kb.dumpKeyboardInterrupt: try: @@ -376,7 +376,7 @@ class Entries(object): kb.dumpKeyboardInterrupt = True clearConsoleLine() warnMsg = "Ctrl+C detected in dumping phase" - logger.warn(warnMsg) + logger.warning(warnMsg) if retVal: entries, lengths = retVal @@ -437,7 +437,7 @@ class Entries(object): kb.dumpKeyboardInterrupt = True clearConsoleLine() warnMsg = "Ctrl+C detected in dumping phase" - logger.warn(warnMsg) + logger.warning(warnMsg) for column, columnEntries in entries.items(): length = max(lengths[column], len(column)) @@ -452,7 +452,7 @@ class Entries(object): warnMsg += "of columns '%s' " % colNames warnMsg += "for table '%s' " % unsafeSQLIdentificatorNaming(tbl) warnMsg += "in database '%s'%s" % (unsafeSQLIdentificatorNaming(conf.db), " (permission denied)" if kb.permissionFlag else "") - logger.warn(warnMsg) + logger.warning(warnMsg) else: kb.data.dumpedTable["__infos__"] = {"count": entriesCount, "table": safeSQLIdentificatorNaming(tbl, True), diff --git a/plugins/generic/filesystem.py b/plugins/generic/filesystem.py index 146d6d21d..2c073c78e 100644 --- a/plugins/generic/filesystem.py +++ b/plugins/generic/filesystem.py @@ -62,7 +62,7 @@ class Filesystem(object): localFileSize = os.path.getsize(localFile) except OSError: warnMsg = "file '%s' is missing" % localFile - logger.warn(warnMsg) + logger.warning(warnMsg) localFileSize = 0 if fileRead and Backend.isDbms(DBMS.PGSQL): @@ -95,7 +95,7 @@ class Filesystem(object): warnMsg = "it looks like the file has not been written (usually " warnMsg += "occurs if the DBMS process user has no write " warnMsg += "privileges in the destination path)" - logger.warn(warnMsg) + logger.warning(warnMsg) return sameFile diff --git a/plugins/generic/fingerprint.py b/plugins/generic/fingerprint.py index 149f9384b..0ac3e2b0f 100644 --- a/plugins/generic/fingerprint.py +++ b/plugins/generic/fingerprint.py @@ -40,7 +40,7 @@ class Fingerprint(object): def userChooseDbmsOs(self): warnMsg = "for some reason sqlmap was unable to fingerprint " warnMsg += "the back-end DBMS operating system" - logger.warn(warnMsg) + logger.warning(warnMsg) msg = "do you want to provide the OS? [(W)indows/(l)inux]" @@ -55,4 +55,4 @@ class Fingerprint(object): break else: warnMsg = "invalid value" - logger.warn(warnMsg) + logger.warning(warnMsg) diff --git a/plugins/generic/misc.py b/plugins/generic/misc.py index 447134a14..f3459c8c9 100644 --- a/plugins/generic/misc.py +++ b/plugins/generic/misc.py @@ -183,7 +183,7 @@ class Miscellaneous(object): warnMsg += "saved on the file system can only be deleted " warnMsg += "manually" - logger.warn(warnMsg) + logger.warning(warnMsg) def likeOrExact(self, what): message = "do you want sqlmap to consider provided %s(s):\n" % what diff --git a/plugins/generic/search.py b/plugins/generic/search.py index d54c47f91..12195a161 100644 --- a/plugins/generic/search.py +++ b/plugins/generic/search.py @@ -119,7 +119,7 @@ class Search(object): if dbConsider == "1": warnMsg += "s LIKE" warnMsg += " '%s' found" % unsafeSQLIdentificatorNaming(db) - logger.warn(warnMsg) + logger.warning(warnMsg) continue @@ -249,7 +249,7 @@ class Search(object): if tblConsider == "1": warnMsg += "s LIKE" warnMsg += " '%s'" % unsafeSQLIdentificatorNaming(tbl) - logger.warn(warnMsg) + logger.warning(warnMsg) continue @@ -302,7 +302,7 @@ class Search(object): warnMsg += "s LIKE" warnMsg += " '%s' " % unsafeSQLIdentificatorNaming(tbl) warnMsg += "in database '%s'" % unsafeSQLIdentificatorNaming(db) - logger.warn(warnMsg) + logger.warning(warnMsg) continue @@ -339,7 +339,7 @@ class Search(object): if not foundTbls: warnMsg = "no databases contain any of the provided tables" - logger.warn(warnMsg) + logger.warning(warnMsg) return conf.dumper.dbTables(foundTbls) @@ -507,7 +507,7 @@ class Search(object): if colConsider == "1": warnMsg += "s LIKE" warnMsg += " '%s'" % unsafeSQLIdentificatorNaming(column) - logger.warn("%s%s" % (warnMsg, infoMsgTbl)) + logger.warning("%s%s" % (warnMsg, infoMsgTbl)) continue @@ -566,7 +566,7 @@ class Search(object): warnMsg += "s LIKE" warnMsg += " '%s' " % unsafeSQLIdentificatorNaming(column) warnMsg += "in database '%s'" % unsafeSQLIdentificatorNaming(db) - logger.warn(warnMsg) + logger.warning(warnMsg) continue @@ -620,7 +620,7 @@ class Search(object): else: warnMsg = "no databases have tables containing any of the " warnMsg += "provided columns" - logger.warn(warnMsg) + logger.warning(warnMsg) def search(self): if Backend.getIdentifiedDbms() in UPPER_CASE_DBMSES: diff --git a/plugins/generic/takeover.py b/plugins/generic/takeover.py index 686d8b7f7..edb067a3b 100644 --- a/plugins/generic/takeover.py +++ b/plugins/generic/takeover.py @@ -122,7 +122,7 @@ class Takeover(Abstraction, Metasploit, ICMPsh, Registry): else: warnMsg = "invalid value, valid values are '1' and '2'" - logger.warn(warnMsg) + logger.warning(warnMsg) else: tunnel = 1 @@ -193,7 +193,7 @@ class Takeover(Abstraction, Metasploit, ICMPsh, Registry): else: warnMsg = "invalid value, valid values are '1' and '2'" - logger.warn(warnMsg) + logger.warning(warnMsg) if choice == 1: goUdf = True @@ -251,7 +251,7 @@ class Takeover(Abstraction, Metasploit, ICMPsh, Registry): warnMsg = "sqlmap does not implement any operating system " warnMsg += "user privilege escalation technique when the " warnMsg += "back-end DBMS underlying system is not Windows" - logger.warn(warnMsg) + logger.warning(warnMsg) if tunnel == 1: self.createMsfShellcode(exitfunc="process", format="raw", extra="BufferRegister=EAX", encode="x86/alpha_mixed") @@ -326,7 +326,7 @@ class Takeover(Abstraction, Metasploit, ICMPsh, Registry): printWarn = False if printWarn: - logger.warn(warnMsg) + logger.warning(warnMsg) self.smb() diff --git a/plugins/generic/users.py b/plugins/generic/users.py index b776e739d..0b658f2b0 100644 --- a/plugins/generic/users.py +++ b/plugins/generic/users.py @@ -301,7 +301,7 @@ class Users(object): if not isNumPosStrValue(count): warnMsg = "unable to retrieve the number of password " warnMsg += "hashes for user '%s'" % user - logger.warn(warnMsg) + logger.warning(warnMsg) continue infoMsg = "fetching password hashes for user '%s'" % user @@ -345,7 +345,7 @@ class Users(object): else: warnMsg = "unable to retrieve the password " warnMsg += "hashes for user '%s'" % user - logger.warn(warnMsg) + logger.warning(warnMsg) retrievedUsers.add(user) @@ -547,7 +547,7 @@ class Users(object): warnMsg = "unable to retrieve the number of " warnMsg += "privileges for user '%s'" % outuser - logger.warn(warnMsg) + logger.warning(warnMsg) continue infoMsg = "fetching privileges for user '%s'" % outuser @@ -650,7 +650,7 @@ class Users(object): else: warnMsg = "unable to retrieve the privileges " warnMsg += "for user '%s'" % outuser - logger.warn(warnMsg) + logger.warning(warnMsg) retrievedUsers.add(user) @@ -668,6 +668,6 @@ class Users(object): def getRoles(self, query2=False): warnMsg = "on %s the concept of roles does not " % Backend.getIdentifiedDbms() warnMsg += "exist. sqlmap will enumerate privileges instead" - logger.warn(warnMsg) + logger.warning(warnMsg) return self.getPrivileges(query2) diff --git a/sqlmap.py b/sqlmap.py index 1a372b034..500e888ff 100755 --- a/sqlmap.py +++ b/sqlmap.py @@ -36,6 +36,7 @@ try: warnings.filterwarnings(action="ignore", category=DeprecationWarning) else: warnings.resetwarnings() + warnings.simplefilter("ignore", category=ResourceWarning, append=1) warnings.filterwarnings(action="ignore", message="Python 2 is no longer supported") warnings.filterwarnings(action="ignore", message=".*was already imported", category=UserWarning) @@ -533,7 +534,7 @@ def main(): if getDaysFromLastUpdate() > LAST_UPDATE_NAGGING_DAYS: warnMsg = "your sqlmap version is outdated" - logger.warn(warnMsg) + logger.warning(warnMsg) if conf.get("showTime"): dataToStdout("\n[*] ending @ %s\n\n" % time.strftime("%X /%Y-%m-%d/"), forceOutput=True)