Baby steps (2 to 3 at a time)

This commit is contained in:
Miroslav Stampar 2019-01-22 00:40:48 +01:00
parent 17b79cd21b
commit 7672b9a0a2
36 changed files with 139 additions and 139 deletions

View File

@ -128,7 +128,7 @@ def main(src, dst):
try: try:
# Send it to the target host # Send it to the target host
sock.sendto(ip.get_packet(), (dst, 0)) sock.sendto(ip.get_packet(), (dst, 0))
except socket.error, ex: except socket.error as ex:
sys.stderr.write("'%s'\n" % ex) sys.stderr.write("'%s'\n" % ex)
sys.stderr.flush() sys.stderr.flush()

View File

@ -48,7 +48,7 @@ def get_page(get=None, url=None, host=None, data=None):
conn = urllib2.urlopen(req, timeout=TIMEOUT) conn = urllib2.urlopen(req, timeout=TIMEOUT)
page = conn.read() page = conn.read()
headers = conn.info() headers = conn.info()
except Exception, ex: except Exception as ex:
code = getattr(ex, "code", None) code = getattr(ex, "code", None)
page = ex.read() if hasattr(ex, "read") else getattr(ex, "msg", "") page = ex.read() if hasattr(ex, "read") else getattr(ex, "msg", "")
headers = ex.info() if hasattr(ex, "info") else {} headers = ex.info() if hasattr(ex, "info") else {}

View File

@ -75,7 +75,7 @@ def action():
if conf.getPasswordHashes: if conf.getPasswordHashes:
try: try:
conf.dumper.userSettings("database management system users password hashes", conf.dbmsHandler.getPasswordHashes(), "password hash", CONTENT_TYPE.PASSWORDS) conf.dumper.userSettings("database management system users password hashes", conf.dbmsHandler.getPasswordHashes(), "password hash", CONTENT_TYPE.PASSWORDS)
except SqlmapNoneDataException, ex: except SqlmapNoneDataException as ex:
logger.critical(ex) logger.critical(ex)
except: except:
raise raise
@ -83,7 +83,7 @@ def action():
if conf.getPrivileges: if conf.getPrivileges:
try: try:
conf.dumper.userSettings("database management system users privileges", conf.dbmsHandler.getPrivileges(), "privilege", CONTENT_TYPE.PRIVILEGES) conf.dumper.userSettings("database management system users privileges", conf.dbmsHandler.getPrivileges(), "privilege", CONTENT_TYPE.PRIVILEGES)
except SqlmapNoneDataException, ex: except SqlmapNoneDataException as ex:
logger.critical(ex) logger.critical(ex)
except: except:
raise raise
@ -91,7 +91,7 @@ def action():
if conf.getRoles: if conf.getRoles:
try: try:
conf.dumper.userSettings("database management system users roles", conf.dbmsHandler.getRoles(), "role", CONTENT_TYPE.ROLES) conf.dumper.userSettings("database management system users roles", conf.dbmsHandler.getRoles(), "role", CONTENT_TYPE.ROLES)
except SqlmapNoneDataException, ex: except SqlmapNoneDataException as ex:
logger.critical(ex) logger.critical(ex)
except: except:
raise raise

View File

@ -1440,7 +1440,7 @@ def identifyWaf():
try: try:
logger.debug("checking for WAF/IPS product '%s'" % product) logger.debug("checking for WAF/IPS product '%s'" % product)
found = function(_) found = function(_)
except Exception, ex: except Exception as ex:
errMsg = "exception occurred while running " errMsg = "exception occurred while running "
errMsg += "WAF script for '%s' ('%s')" % (product, getSafeExString(ex)) errMsg += "WAF script for '%s' ('%s')" % (product, getSafeExString(ex))
logger.critical(errMsg) logger.critical(errMsg)
@ -1543,11 +1543,11 @@ def checkConnection(suppressOutput=False):
except socket.gaierror: except socket.gaierror:
errMsg = "host '%s' does not exist" % conf.hostname errMsg = "host '%s' does not exist" % conf.hostname
raise SqlmapConnectionException(errMsg) raise SqlmapConnectionException(errMsg)
except socket.error, ex: except socket.error as ex:
errMsg = "problem occurred while " errMsg = "problem occurred while "
errMsg += "resolving a host name '%s' ('%s')" % (conf.hostname, getSafeExString(ex)) errMsg += "resolving a host name '%s' ('%s')" % (conf.hostname, getSafeExString(ex))
raise SqlmapConnectionException(errMsg) raise SqlmapConnectionException(errMsg)
except UnicodeError, ex: except UnicodeError as ex:
errMsg = "problem occurred while " errMsg = "problem occurred while "
errMsg += "handling a host name '%s' ('%s')" % (conf.hostname, getSafeExString(ex)) errMsg += "handling a host name '%s' ('%s')" % (conf.hostname, getSafeExString(ex))
raise SqlmapDataException(errMsg) raise SqlmapDataException(errMsg)
@ -1591,7 +1591,7 @@ def checkConnection(suppressOutput=False):
port = match.group(1) if match else 443 port = match.group(1) if match else 443
conf.url = re.sub(r":\d+(/|\Z)", ":%s\g<1>" % port, conf.url) conf.url = re.sub(r":\d+(/|\Z)", ":%s\g<1>" % port, conf.url)
except SqlmapConnectionException, ex: except SqlmapConnectionException as ex:
if conf.ipv6: if conf.ipv6:
warnMsg = "check connection to a provided " warnMsg = "check connection to a provided "
warnMsg += "IPv6 address with a tool like ping6 " warnMsg += "IPv6 address with a tool like ping6 "

View File

@ -257,7 +257,7 @@ def _saveToResultsFile():
conf.resultsFP.write(line) conf.resultsFP.write(line)
conf.resultsFP.flush() conf.resultsFP.flush()
except IOError, ex: except IOError as ex:
errMsg = "unable to write to the results file '%s' ('%s'). " % (conf.resultsFilename, getSafeExString(ex)) errMsg = "unable to write to the results file '%s' ('%s'). " % (conf.resultsFilename, getSafeExString(ex))
raise SqlmapSystemException(errMsg) raise SqlmapSystemException(errMsg)
@ -689,7 +689,7 @@ def start():
except SqlmapSilentQuitException: except SqlmapSilentQuitException:
raise raise
except SqlmapBaseException, ex: except SqlmapBaseException as ex:
errMsg = getSafeExString(ex) errMsg = getSafeExString(ex)
if conf.multipleTargets: if conf.multipleTargets:

View File

@ -105,13 +105,13 @@ def setHandler():
if sqlalchemy.connector: if sqlalchemy.connector:
conf.dbmsConnector = sqlalchemy conf.dbmsConnector = sqlalchemy
except Exception, ex: except Exception as ex:
exception = ex exception = ex
if not dialect or exception: if not dialect or exception:
try: try:
conf.dbmsConnector.connect() conf.dbmsConnector.connect()
except Exception, ex: except Exception as ex:
if exception: if exception:
raise exception raise exception
else: else:

View File

@ -87,7 +87,7 @@ class BigArray(list):
try: try:
with open(self.chunks[-1], "rb") as f: with open(self.chunks[-1], "rb") as f:
self.chunks[-1] = pickle.loads(bz2.decompress(f.read())) self.chunks[-1] = pickle.loads(bz2.decompress(f.read()))
except IOError, ex: except IOError as ex:
errMsg = "exception occurred while retrieving data " errMsg = "exception occurred while retrieving data "
errMsg += "from a temporary file ('%s')" % ex.message errMsg += "from a temporary file ('%s')" % ex.message
raise SqlmapSystemException(errMsg) raise SqlmapSystemException(errMsg)
@ -109,7 +109,7 @@ class BigArray(list):
with open(filename, "w+b") as f: with open(filename, "w+b") as f:
f.write(bz2.compress(pickle.dumps(chunk, pickle.HIGHEST_PROTOCOL), BIGARRAY_COMPRESS_LEVEL)) f.write(bz2.compress(pickle.dumps(chunk, pickle.HIGHEST_PROTOCOL), BIGARRAY_COMPRESS_LEVEL))
return filename return filename
except (OSError, IOError), ex: except (OSError, IOError) as ex:
errMsg = "exception occurred while storing data " errMsg = "exception occurred while storing data "
errMsg += "to a temporary file ('%s'). Please " % ex.message errMsg += "to a temporary file ('%s'). Please " % ex.message
errMsg += "make sure that there is enough disk space left. If problem persists, " errMsg += "make sure that there is enough disk space left. If problem persists, "
@ -126,7 +126,7 @@ class BigArray(list):
try: try:
with open(self.chunks[index], "rb") as f: with open(self.chunks[index], "rb") as f:
self.cache = Cache(index, pickle.loads(bz2.decompress(f.read())), False) self.cache = Cache(index, pickle.loads(bz2.decompress(f.read())), False)
except Exception, ex: except Exception as ex:
errMsg = "exception occurred while retrieving data " errMsg = "exception occurred while retrieving data "
errMsg += "from a temporary file ('%s')" % ex.message errMsg += "from a temporary file ('%s')" % ex.message
raise SqlmapSystemException(errMsg) raise SqlmapSystemException(errMsg)

View File

@ -943,7 +943,7 @@ def dataToTrafficFile(data):
try: try:
conf.trafficFP.write(data) conf.trafficFP.write(data)
conf.trafficFP.flush() conf.trafficFP.flush()
except IOError, ex: except IOError as ex:
errMsg = "something went wrong while trying " errMsg = "something went wrong while trying "
errMsg += "to write to the traffic file '%s' ('%s')" % (conf.trafficFile, getSafeExString(ex)) errMsg += "to write to the traffic file '%s' ('%s')" % (conf.trafficFile, getSafeExString(ex))
raise SqlmapSystemException(errMsg) raise SqlmapSystemException(errMsg)
@ -952,7 +952,7 @@ def dataToDumpFile(dumpFile, data):
try: try:
dumpFile.write(data) dumpFile.write(data)
dumpFile.flush() dumpFile.flush()
except IOError, ex: except IOError as ex:
if "No space left" in getUnicode(ex): if "No space left" in getUnicode(ex):
errMsg = "no space left on output device" errMsg = "no space left on output device"
logger.error(errMsg) logger.error(errMsg)
@ -972,7 +972,7 @@ def dataToOutFile(filename, data):
try: try:
with open(retVal, "w+b") as f: # has to stay as non-codecs because data is raw ASCII encoded data with open(retVal, "w+b") as f: # has to stay as non-codecs because data is raw ASCII encoded data
f.write(unicodeencode(data)) f.write(unicodeencode(data))
except UnicodeEncodeError, ex: except UnicodeEncodeError as ex:
_ = normalizeUnicode(filename) _ = normalizeUnicode(filename)
if filename != _: if filename != _:
filename = _ filename = _
@ -980,7 +980,7 @@ def dataToOutFile(filename, data):
errMsg = "couldn't write to the " errMsg = "couldn't write to the "
errMsg += "output file ('%s')" % getSafeExString(ex) errMsg += "output file ('%s')" % getSafeExString(ex)
raise SqlmapGenericException(errMsg) raise SqlmapGenericException(errMsg)
except IOError, ex: except IOError as ex:
errMsg = "something went wrong while trying to write " errMsg = "something went wrong while trying to write "
errMsg += "to the output file ('%s')" % getSafeExString(ex) errMsg += "to the output file ('%s')" % getSafeExString(ex)
raise SqlmapGenericException(errMsg) raise SqlmapGenericException(errMsg)
@ -1446,7 +1446,7 @@ def parseTargetUrl():
try: try:
urlSplit = urlparse.urlsplit(conf.url) urlSplit = urlparse.urlsplit(conf.url)
except ValueError, ex: except ValueError as ex:
errMsg = "invalid URL '%s' has been given ('%s'). " % (conf.url, getSafeExString(ex)) errMsg = "invalid URL '%s' has been given ('%s'). " % (conf.url, getSafeExString(ex))
errMsg += "Please be sure that you don't have any leftover characters (e.g. '[' or ']') " errMsg += "Please be sure that you don't have any leftover characters (e.g. '[' or ']') "
errMsg += "in the hostname part" errMsg += "in the hostname part"
@ -2038,7 +2038,7 @@ def parseXmlFile(xmlFile, handler):
try: try:
with contextlib.closing(StringIO(readCachedFileContent(xmlFile))) as stream: with contextlib.closing(StringIO(readCachedFileContent(xmlFile))) as stream:
parse(stream, handler) parse(stream, handler)
except (SAXParseException, UnicodeError), ex: except (SAXParseException, UnicodeError) as ex:
errMsg = "something appears to be wrong with " errMsg = "something appears to be wrong with "
errMsg += "the file '%s' ('%s'). Please make " % (xmlFile, getSafeExString(ex)) errMsg += "the file '%s' ('%s'). Please make " % (xmlFile, getSafeExString(ex))
errMsg += "sure that you haven't made any changes to it" errMsg += "sure that you haven't made any changes to it"
@ -2104,7 +2104,7 @@ def readCachedFileContent(filename, mode="rb"):
try: try:
with openFile(filename, mode) as f: with openFile(filename, mode) as f:
kb.cache.content[filename] = f.read() kb.cache.content[filename] = f.read()
except (IOError, OSError, MemoryError), ex: except (IOError, OSError, MemoryError) as ex:
errMsg = "something went wrong while trying " errMsg = "something went wrong while trying "
errMsg += "to read the content of file '%s' ('%s')" % (filename, getSafeExString(ex)) errMsg += "to read the content of file '%s' ('%s')" % (filename, getSafeExString(ex))
raise SqlmapSystemException(errMsg) raise SqlmapSystemException(errMsg)
@ -2218,7 +2218,7 @@ def getFileItems(filename, commentPrefix='#', unicoded=True, lowercase=False, un
retVal[line] = True retVal[line] = True
else: else:
retVal.append(line) retVal.append(line)
except (IOError, OSError, MemoryError), ex: except (IOError, OSError, MemoryError) as ex:
errMsg = "something went wrong while trying " errMsg = "something went wrong while trying "
errMsg += "to read the content of file '%s' ('%s')" % (filename, getSafeExString(ex)) errMsg += "to read the content of file '%s' ('%s')" % (filename, getSafeExString(ex))
raise SqlmapSystemException(errMsg) raise SqlmapSystemException(errMsg)
@ -2351,7 +2351,7 @@ def getUnicode(value, encoding=None, noneToNull=False):
while True: while True:
try: try:
return unicode(value, encoding or (kb.get("pageEncoding") if kb.get("originalPage") else None) or UNICODE_ENCODING) return unicode(value, encoding or (kb.get("pageEncoding") if kb.get("originalPage") else None) or UNICODE_ENCODING)
except UnicodeDecodeError, ex: except UnicodeDecodeError as ex:
try: try:
return unicode(value, UNICODE_ENCODING) return unicode(value, UNICODE_ENCODING)
except: except:
@ -2407,7 +2407,7 @@ def pushValue(value):
getCurrentThreadData().valueStack.append(copy.deepcopy(value)) getCurrentThreadData().valueStack.append(copy.deepcopy(value))
success = True success = True
break break
except Exception, ex: except Exception as ex:
_ = ex _ = ex
if not success: if not success:
@ -3095,7 +3095,7 @@ def saveConfig(conf, filename):
with openFile(filename, "wb") as f: with openFile(filename, "wb") as f:
try: try:
config.write(f) config.write(f)
except IOError, ex: except IOError as ex:
errMsg = "something went wrong while trying " errMsg = "something went wrong while trying "
errMsg += "to write to the configuration file '%s' ('%s')" % (filename, getSafeExString(ex)) errMsg += "to write to the configuration file '%s' ('%s')" % (filename, getSafeExString(ex))
raise SqlmapSystemException(errMsg) raise SqlmapSystemException(errMsg)
@ -3442,7 +3442,7 @@ def createGithubIssue(errMsg, excMsg):
try: try:
content = urllib2.urlopen(req).read() content = urllib2.urlopen(req).read()
except Exception, ex: except Exception as ex:
content = None content = None
issueUrl = re.search(r"https://github.com/sqlmapproject/sqlmap/issues/\d+", content or "") issueUrl = re.search(r"https://github.com/sqlmapproject/sqlmap/issues/\d+", content or "")
@ -4063,7 +4063,7 @@ def findPageForms(content, url, raise_=False, addToTargets=False):
continue continue
request = form.click() request = form.click()
except (ValueError, TypeError), ex: except (ValueError, TypeError) as ex:
errMsg = "there has been a problem while " errMsg = "there has been a problem while "
errMsg += "processing page forms ('%s')" % getSafeExString(ex) errMsg += "processing page forms ('%s')" % getSafeExString(ex)
if raise_: if raise_:
@ -4193,7 +4193,7 @@ def evaluateCode(code, variables=None):
exec(code, variables) exec(code, variables)
except KeyboardInterrupt: except KeyboardInterrupt:
raise raise
except Exception, ex: except Exception as ex:
errMsg = "an error occurred while evaluating provided code ('%s') " % getSafeExString(ex) errMsg = "an error occurred while evaluating provided code ('%s') " % getSafeExString(ex)
raise SqlmapGenericException(errMsg) raise SqlmapGenericException(errMsg)
@ -4715,7 +4715,7 @@ def parseRequestFile(reqFile, checkParams=True):
try: try:
with openFile(reqFile, "rb") as f: with openFile(reqFile, "rb") as f:
content = f.read() content = f.read()
except (IOError, OSError, MemoryError), ex: except (IOError, OSError, MemoryError) as ex:
errMsg = "something went wrong while trying " errMsg = "something went wrong while trying "
errMsg += "to read the content of file '%s' ('%s')" % (reqFile, getSafeExString(ex)) errMsg += "to read the content of file '%s' ('%s')" % (reqFile, getSafeExString(ex))
raise SqlmapSystemException(errMsg) raise SqlmapSystemException(errMsg)

View File

@ -79,7 +79,7 @@ class Dump(object):
try: try:
self._outputFP.write(text) self._outputFP.write(text)
except IOError, ex: except IOError as ex:
errMsg = "error occurred while writing to log file ('%s')" % getSafeExString(ex) errMsg = "error occurred while writing to log file ('%s')" % getSafeExString(ex)
raise SqlmapGenericException(errMsg) raise SqlmapGenericException(errMsg)
@ -99,7 +99,7 @@ class Dump(object):
self._outputFile = os.path.join(conf.outputPath, "log") self._outputFile = os.path.join(conf.outputPath, "log")
try: try:
self._outputFP = openFile(self._outputFile, "ab" if not conf.flushSession else "wb") self._outputFP = openFile(self._outputFile, "ab" if not conf.flushSession else "wb")
except IOError, ex: except IOError as ex:
errMsg = "error occurred while opening log file ('%s')" % getSafeExString(ex) errMsg = "error occurred while opening log file ('%s')" % getSafeExString(ex)
raise SqlmapGenericException(errMsg) raise SqlmapGenericException(errMsg)
@ -426,7 +426,7 @@ class Dump(object):
if not os.path.isdir(dumpDbPath): if not os.path.isdir(dumpDbPath):
try: try:
os.makedirs(dumpDbPath) os.makedirs(dumpDbPath)
except Exception, ex: except Exception as ex:
try: try:
tempDir = tempfile.mkdtemp(prefix="sqlmapdb") tempDir = tempfile.mkdtemp(prefix="sqlmapdb")
except IOError, _: except IOError, _:

View File

@ -194,7 +194,7 @@ def _loadQueries():
tree = ElementTree() tree = ElementTree()
try: try:
tree.parse(paths.QUERIES_XML) tree.parse(paths.QUERIES_XML)
except Exception, ex: except Exception as ex:
errMsg = "something appears to be wrong with " errMsg = "something appears to be wrong with "
errMsg += "the file '%s' ('%s'). Please make " % (paths.QUERIES_XML, getSafeExString(ex)) errMsg += "the file '%s' ('%s'). Please make " % (paths.QUERIES_XML, getSafeExString(ex))
errMsg += "sure that you haven't made any changes to it" errMsg += "sure that you haven't made any changes to it"
@ -335,7 +335,7 @@ def _setCrawler():
if conf.verbose in (1, 2): if conf.verbose in (1, 2):
status = "%d/%d links visited (%d%%)" % (i + 1, len(targets), round(100.0 * (i + 1) / len(targets))) status = "%d/%d links visited (%d%%)" % (i + 1, len(targets), round(100.0 * (i + 1) / len(targets)))
dataToStdout("\r[%s] [INFO] %s" % (time.strftime("%X"), status), True) dataToStdout("\r[%s] [INFO] %s" % (time.strftime("%X"), status), True)
except Exception, ex: except Exception as ex:
errMsg = "problem occurred while crawling at '%s' ('%s')" % (target, getSafeExString(ex)) errMsg = "problem occurred while crawling at '%s' ('%s')" % (target, getSafeExString(ex))
logger.error(errMsg) logger.error(errMsg)
@ -471,7 +471,7 @@ def _findPageForms():
dataToStdout("\r[%s] [INFO] %s" % (time.strftime("%X"), status), True) dataToStdout("\r[%s] [INFO] %s" % (time.strftime("%X"), status), True)
except KeyboardInterrupt: except KeyboardInterrupt:
break break
except Exception, ex: except Exception as ex:
errMsg = "problem occurred while searching for forms at '%s' ('%s')" % (target, getSafeExString(ex)) errMsg = "problem occurred while searching for forms at '%s' ('%s')" % (target, getSafeExString(ex))
logger.error(errMsg) logger.error(errMsg)
@ -768,7 +768,7 @@ def _setTamperingFunctions():
try: try:
module = __import__(filename[:-3].encode(sys.getfilesystemencoding() or UNICODE_ENCODING)) module = __import__(filename[:-3].encode(sys.getfilesystemencoding() or UNICODE_ENCODING))
except Exception, ex: except Exception as ex:
raise SqlmapSyntaxException("cannot import tamper module '%s' (%s)" % (filename[:-3], getSafeExString(ex))) raise SqlmapSyntaxException("cannot import tamper module '%s' (%s)" % (filename[:-3], getSafeExString(ex)))
priority = PRIORITY.NORMAL if not hasattr(module, "__priority__") else module.__priority__ priority = PRIORITY.NORMAL if not hasattr(module, "__priority__") else module.__priority__
@ -801,7 +801,7 @@ def _setTamperingFunctions():
elif name == "dependencies": elif name == "dependencies":
try: try:
function() function()
except Exception, ex: except Exception as ex:
errMsg = "error occurred while checking dependencies " errMsg = "error occurred while checking dependencies "
errMsg += "for tamper module '%s' ('%s')" % (filename[:-3], getSafeExString(ex)) errMsg += "for tamper module '%s' ('%s')" % (filename[:-3], getSafeExString(ex))
raise SqlmapGenericException(errMsg) raise SqlmapGenericException(errMsg)
@ -974,7 +974,7 @@ def _setHTTPHandlers():
try: try:
_ = urlparse.urlsplit(conf.proxy) _ = urlparse.urlsplit(conf.proxy)
except Exception, ex: except Exception as ex:
errMsg = "invalid proxy address '%s' ('%s')" % (conf.proxy, getSafeExString(ex)) errMsg = "invalid proxy address '%s' ('%s')" % (conf.proxy, getSafeExString(ex))
raise SqlmapSyntaxException(errMsg) raise SqlmapSyntaxException(errMsg)
@ -1376,7 +1376,7 @@ def _setHostname():
if conf.url: if conf.url:
try: try:
conf.hostname = urlparse.urlsplit(conf.url).netloc.split(':')[0] conf.hostname = urlparse.urlsplit(conf.url).netloc.split(':')[0]
except ValueError, ex: except ValueError as ex:
errMsg = "problem occurred while " errMsg = "problem occurred while "
errMsg += "parsing an URL '%s' ('%s')" % (conf.url, getSafeExString(ex)) errMsg += "parsing an URL '%s' ('%s')" % (conf.url, getSafeExString(ex))
raise SqlmapDataException(errMsg) raise SqlmapDataException(errMsg)
@ -1430,7 +1430,7 @@ def _createTemporaryDirectory():
warnMsg = "using '%s' as the temporary directory" % conf.tmpDir warnMsg = "using '%s' as the temporary directory" % conf.tmpDir
logger.warn(warnMsg) logger.warn(warnMsg)
except (OSError, IOError), ex: except (OSError, IOError) as ex:
errMsg = "there has been a problem while accessing " errMsg = "there has been a problem while accessing "
errMsg += "temporary directory location(s) ('%s')" % getSafeExString(ex) errMsg += "temporary directory location(s) ('%s')" % getSafeExString(ex)
raise SqlmapSystemException(errMsg) raise SqlmapSystemException(errMsg)
@ -1438,7 +1438,7 @@ def _createTemporaryDirectory():
try: try:
if not os.path.isdir(tempfile.gettempdir()): if not os.path.isdir(tempfile.gettempdir()):
os.makedirs(tempfile.gettempdir()) os.makedirs(tempfile.gettempdir())
except Exception, ex: except Exception as ex:
warnMsg = "there has been a problem while accessing " warnMsg = "there has been a problem while accessing "
warnMsg += "system's temporary directory location(s) ('%s'). Please " % getSafeExString(ex) warnMsg += "system's temporary directory location(s) ('%s'). Please " % getSafeExString(ex)
warnMsg += "make sure that there is enough disk space left. If problem persists, " warnMsg += "make sure that there is enough disk space left. If problem persists, "
@ -1457,7 +1457,7 @@ def _createTemporaryDirectory():
if not os.path.isdir(tempfile.tempdir): if not os.path.isdir(tempfile.tempdir):
try: try:
os.makedirs(tempfile.tempdir) os.makedirs(tempfile.tempdir)
except Exception, ex: except Exception as ex:
errMsg = "there has been a problem while setting " errMsg = "there has been a problem while setting "
errMsg += "temporary directory location ('%s')" % getSafeExString(ex) errMsg += "temporary directory location ('%s')" % getSafeExString(ex)
raise SqlmapSystemException(errMsg) raise SqlmapSystemException(errMsg)
@ -2329,14 +2329,14 @@ def _basicOptionValidation():
if conf.regexp: if conf.regexp:
try: try:
re.compile(conf.regexp) re.compile(conf.regexp)
except Exception, ex: except Exception as ex:
errMsg = "invalid regular expression '%s' ('%s')" % (conf.regexp, getSafeExString(ex)) errMsg = "invalid regular expression '%s' ('%s')" % (conf.regexp, getSafeExString(ex))
raise SqlmapSyntaxException(errMsg) raise SqlmapSyntaxException(errMsg)
if conf.crawlExclude: if conf.crawlExclude:
try: try:
re.compile(conf.crawlExclude) re.compile(conf.crawlExclude)
except Exception, ex: except Exception as ex:
errMsg = "invalid regular expression '%s' ('%s')" % (conf.crawlExclude, getSafeExString(ex)) errMsg = "invalid regular expression '%s' ('%s')" % (conf.crawlExclude, getSafeExString(ex))
raise SqlmapSyntaxException(errMsg) raise SqlmapSyntaxException(errMsg)

View File

@ -27,7 +27,7 @@ class Replication(object):
self.connection = sqlite3.connect(dbpath) self.connection = sqlite3.connect(dbpath)
self.connection.isolation_level = None self.connection.isolation_level = None
self.cursor = self.connection.cursor() self.cursor = self.connection.cursor()
except sqlite3.OperationalError, ex: except sqlite3.OperationalError as ex:
errMsg = "error occurred while opening a replication " errMsg = "error occurred while opening a replication "
errMsg += "file '%s' ('%s')" % (self.filepath, getSafeExString(ex)) errMsg += "file '%s' ('%s')" % (self.filepath, getSafeExString(ex))
raise SqlmapConnectionException(errMsg) raise SqlmapConnectionException(errMsg)
@ -63,7 +63,7 @@ class Replication(object):
self.execute('CREATE TABLE "%s" (%s)' % (self.name, ','.join('"%s" %s' % (unsafeSQLIdentificatorNaming(colname), coltype) for colname, coltype in self.columns))) self.execute('CREATE TABLE "%s" (%s)' % (self.name, ','.join('"%s" %s' % (unsafeSQLIdentificatorNaming(colname), coltype) for colname, coltype in self.columns)))
else: else:
self.execute('CREATE TABLE "%s" (%s)' % (self.name, ','.join('"%s"' % unsafeSQLIdentificatorNaming(colname) for colname in self.columns))) self.execute('CREATE TABLE "%s" (%s)' % (self.name, ','.join('"%s"' % unsafeSQLIdentificatorNaming(colname) for colname in self.columns)))
except Exception, ex: except Exception as ex:
errMsg = "problem occurred ('%s') while initializing the sqlite database " % getSafeExString(ex, UNICODE_ENCODING) errMsg = "problem occurred ('%s') while initializing the sqlite database " % getSafeExString(ex, UNICODE_ENCODING)
errMsg += "located at '%s'" % self.parent.dbpath errMsg += "located at '%s'" % self.parent.dbpath
raise SqlmapGenericException(errMsg) raise SqlmapGenericException(errMsg)
@ -82,7 +82,7 @@ class Replication(object):
def execute(self, sql, parameters=[]): def execute(self, sql, parameters=[]):
try: try:
self.parent.cursor.execute(sql, parameters) self.parent.cursor.execute(sql, parameters)
except sqlite3.OperationalError, ex: except sqlite3.OperationalError as ex:
errMsg = "problem occurred ('%s') while accessing sqlite database " % getSafeExString(ex, UNICODE_ENCODING) errMsg = "problem occurred ('%s') while accessing sqlite database " % getSafeExString(ex, UNICODE_ENCODING)
errMsg += "located at '%s'. Please make sure that " % self.parent.dbpath errMsg += "located at '%s'. Please make sure that " % self.parent.dbpath
errMsg += "it's not used by some other program" errMsg += "it's not used by some other program"

View File

@ -19,7 +19,7 @@ from lib.core.enums import DBMS_DIRECTORY_NAME
from lib.core.enums import OS from lib.core.enums import OS
# sqlmap version (<major>.<minor>.<month>.<monthly commit>) # sqlmap version (<major>.<minor>.<month>.<monthly commit>)
VERSION = "1.3.1.59" VERSION = "1.3.1.60"
TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable" TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34} 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) VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE)

View File

@ -558,7 +558,7 @@ def _setResultsFile():
conf.resultsFilename = os.path.join(paths.SQLMAP_OUTPUT_PATH, time.strftime(RESULTS_FILE_FORMAT).lower()) conf.resultsFilename = os.path.join(paths.SQLMAP_OUTPUT_PATH, time.strftime(RESULTS_FILE_FORMAT).lower())
try: try:
conf.resultsFP = openFile(conf.resultsFilename, "a", UNICODE_ENCODING, buffering=0) conf.resultsFP = openFile(conf.resultsFilename, "a", UNICODE_ENCODING, buffering=0)
except (OSError, IOError), ex: except (OSError, IOError) as ex:
try: try:
warnMsg = "unable to create results file '%s' ('%s'). " % (conf.resultsFilename, getUnicode(ex)) warnMsg = "unable to create results file '%s' ('%s'). " % (conf.resultsFilename, getUnicode(ex))
handle, conf.resultsFilename = tempfile.mkstemp(prefix=MKSTEMP_PREFIX.RESULTS, suffix=".csv") handle, conf.resultsFilename = tempfile.mkstemp(prefix=MKSTEMP_PREFIX.RESULTS, suffix=".csv")
@ -590,7 +590,7 @@ def _createFilesDir():
if not os.path.isdir(conf.filePath): if not os.path.isdir(conf.filePath):
try: try:
os.makedirs(conf.filePath) os.makedirs(conf.filePath)
except OSError, ex: except OSError as ex:
tempDir = tempfile.mkdtemp(prefix="sqlmapfiles") tempDir = tempfile.mkdtemp(prefix="sqlmapfiles")
warnMsg = "unable to create files directory " warnMsg = "unable to create files directory "
warnMsg += "'%s' (%s). " % (conf.filePath, getUnicode(ex)) warnMsg += "'%s' (%s). " % (conf.filePath, getUnicode(ex))
@ -612,7 +612,7 @@ def _createDumpDir():
if not os.path.isdir(conf.dumpPath): if not os.path.isdir(conf.dumpPath):
try: try:
os.makedirs(conf.dumpPath) os.makedirs(conf.dumpPath)
except OSError, ex: except OSError as ex:
tempDir = tempfile.mkdtemp(prefix="sqlmapdump") tempDir = tempfile.mkdtemp(prefix="sqlmapdump")
warnMsg = "unable to create dump directory " warnMsg = "unable to create dump directory "
warnMsg += "'%s' (%s). " % (conf.dumpPath, getUnicode(ex)) warnMsg += "'%s' (%s). " % (conf.dumpPath, getUnicode(ex))
@ -643,7 +643,7 @@ def _createTargetDirs():
if conf.outputDir and context == "output": if conf.outputDir and context == "output":
warnMsg = "using '%s' as the %s directory" % (directory, context) warnMsg = "using '%s' as the %s directory" % (directory, context)
logger.warn(warnMsg) logger.warn(warnMsg)
except (OSError, IOError), ex: except (OSError, IOError) as ex:
try: try:
tempDir = tempfile.mkdtemp(prefix="sqlmap%s" % context) tempDir = tempfile.mkdtemp(prefix="sqlmap%s" % context)
except Exception, _: except Exception, _:
@ -665,7 +665,7 @@ def _createTargetDirs():
try: try:
if not os.path.isdir(conf.outputPath): if not os.path.isdir(conf.outputPath):
os.makedirs(conf.outputPath) os.makedirs(conf.outputPath)
except (OSError, IOError, TypeError), ex: except (OSError, IOError, TypeError) as ex:
try: try:
tempDir = tempfile.mkdtemp(prefix="sqlmapoutput") tempDir = tempfile.mkdtemp(prefix="sqlmapoutput")
except Exception, _: except Exception, _:
@ -691,7 +691,7 @@ def _createTargetDirs():
f.write(" # %s" % getUnicode(subprocess.list2cmdline(sys.argv), encoding=sys.stdin.encoding)) f.write(" # %s" % getUnicode(subprocess.list2cmdline(sys.argv), encoding=sys.stdin.encoding))
if conf.data: if conf.data:
f.write("\n\n%s" % getUnicode(conf.data)) f.write("\n\n%s" % getUnicode(conf.data))
except IOError, ex: except IOError as ex:
if "denied" in getUnicode(ex): if "denied" in getUnicode(ex):
errMsg = "you don't have enough permissions " errMsg = "you don't have enough permissions "
else: else:

View File

@ -91,7 +91,7 @@ def exceptionHandledFunction(threadFunction, silent=False):
kb.threadContinue = False kb.threadContinue = False
kb.threadException = True kb.threadException = True
raise raise
except Exception, ex: except Exception as ex:
if not silent and kb.get("threadContinue"): if not silent and kb.get("threadContinue"):
logger.error("thread %s: %s" % (threading.currentThread().getName(), ex.message)) logger.error("thread %s: %s" % (threading.currentThread().getName(), ex.message))
@ -150,7 +150,7 @@ def runThreads(numThreads, threadFunction, cleanupFunction=None, forwardExceptio
try: try:
thread.start() thread.start()
except Exception, ex: except Exception as ex:
errMsg = "error occurred while starting new thread ('%s')" % ex.message errMsg = "error occurred while starting new thread ('%s')" % ex.message
logger.critical(errMsg) logger.critical(errMsg)
break break
@ -166,7 +166,7 @@ def runThreads(numThreads, threadFunction, cleanupFunction=None, forwardExceptio
alive = True alive = True
time.sleep(0.1) time.sleep(0.1)
except (KeyboardInterrupt, SqlmapUserQuitException), ex: except (KeyboardInterrupt, SqlmapUserQuitException) as ex:
print print
kb.prependFlag = False kb.prependFlag = False
kb.threadContinue = False kb.threadContinue = False
@ -184,7 +184,7 @@ def runThreads(numThreads, threadFunction, cleanupFunction=None, forwardExceptio
if forwardException: if forwardException:
raise raise
except (SqlmapConnectionException, SqlmapValueException), ex: except (SqlmapConnectionException, SqlmapValueException) as ex:
print print
kb.threadException = True kb.threadException = True
logger.error("thread %s: %s" % (threading.currentThread().getName(), ex.message)) logger.error("thread %s: %s" % (threading.currentThread().getName(), ex.message))

View File

@ -51,7 +51,7 @@ def update():
try: try:
open(os.path.join(directory, "sqlmap.py"), "w+b") open(os.path.join(directory, "sqlmap.py"), "w+b")
except Exception, ex: except Exception as ex:
errMsg = "unable to update content of directory '%s' ('%s')" % (directory, getSafeExString(ex)) errMsg = "unable to update content of directory '%s' ('%s')" % (directory, getSafeExString(ex))
logger.error(errMsg) logger.error(errMsg)
else: else:
@ -85,7 +85,7 @@ def update():
version = re.search(r"(?m)^VERSION\s*=\s*['\"]([^'\"]+)", f.read()).group(1) version = re.search(r"(?m)^VERSION\s*=\s*['\"]([^'\"]+)", f.read()).group(1)
logger.info("updated to the latest version '%s#dev'" % version) logger.info("updated to the latest version '%s#dev'" % version)
success = True success = True
except Exception, ex: except Exception as ex:
logger.error("update could not be completed ('%s')" % getSafeExString(ex)) logger.error("update could not be completed ('%s')" % getSafeExString(ex))
else: else:
if not success: if not success:
@ -110,7 +110,7 @@ def update():
pollProcess(process, True) pollProcess(process, True)
stdout, stderr = process.communicate() stdout, stderr = process.communicate()
success = not process.returncode success = not process.returncode
except (IOError, OSError), ex: except (IOError, OSError) as ex:
success = False success = False
stderr = getSafeExString(ex) stderr = getSafeExString(ex)

View File

@ -43,7 +43,7 @@ class Wordlist(object):
if os.path.splitext(self.current)[1].lower() == ".zip": if os.path.splitext(self.current)[1].lower() == ".zip":
try: try:
_ = zipfile.ZipFile(self.current, 'r') _ = zipfile.ZipFile(self.current, 'r')
except zipfile.error, ex: except zipfile.error as ex:
errMsg = "something appears to be wrong with " errMsg = "something appears to be wrong with "
errMsg += "the file '%s' ('%s'). Please make " % (self.current, getSafeExString(ex)) errMsg += "the file '%s' ('%s'). Please make " % (self.current, getSafeExString(ex))
errMsg += "sure that you haven't made any changes to it" errMsg += "sure that you haven't made any changes to it"
@ -69,7 +69,7 @@ class Wordlist(object):
self.counter += 1 self.counter += 1
try: try:
retVal = self.iter.next().rstrip() retVal = self.iter.next().rstrip()
except zipfile.error, ex: except zipfile.error as ex:
errMsg = "something appears to be wrong with " errMsg = "something appears to be wrong with "
errMsg += "the file '%s' ('%s'). Please make " % (self.current, getSafeExString(ex)) errMsg += "the file '%s' ('%s'). Please make " % (self.current, getSafeExString(ex))
errMsg += "sure that you haven't made any changes to it" errMsg += "sure that you haven't made any changes to it"

View File

@ -814,7 +814,7 @@ def cmdLineParser(argv=None):
try: try:
for arg in shlex.split(command): for arg in shlex.split(command):
argv.append(getUnicode(arg, encoding=sys.stdin.encoding)) argv.append(getUnicode(arg, encoding=sys.stdin.encoding))
except ValueError, ex: except ValueError as ex:
raise SqlmapSyntaxException("something went wrong during command line parsing ('%s')" % ex.message) raise SqlmapSyntaxException("something went wrong during command line parsing ('%s')" % ex.message)
for i in xrange(len(argv)): for i in xrange(len(argv)):
@ -866,7 +866,7 @@ def cmdLineParser(argv=None):
try: try:
(args, _) = parser.parse_args(argv) (args, _) = parser.parse_args(argv)
except UnicodeEncodeError, ex: except UnicodeEncodeError as ex:
dataToStdout("\n[!] %s\n" % ex.object.encode("unicode-escape")) dataToStdout("\n[!] %s\n" % ex.object.encode("unicode-escape"))
raise SystemExit raise SystemExit
except SystemExit: except SystemExit:

View File

@ -39,7 +39,7 @@ def configFileProxy(section, option, datatype):
value = config.getfloat(section, option) if config.get(section, option) else 0.0 value = config.getfloat(section, option) if config.get(section, option) else 0.0
else: else:
value = config.get(section, option) value = config.get(section, option)
except ValueError, ex: except ValueError as ex:
errMsg = "error occurred while processing the option " errMsg = "error occurred while processing the option "
errMsg += "'%s' in provided configuration file ('%s')" % (option, getUnicode(ex)) errMsg += "'%s' in provided configuration file ('%s')" % (option, getUnicode(ex))
raise SqlmapSyntaxException(errMsg) raise SqlmapSyntaxException(errMsg)
@ -71,7 +71,7 @@ def configFileParser(configFile):
try: try:
config = UnicodeRawConfigParser() config = UnicodeRawConfigParser()
config.readfp(configFP) config.readfp(configFP)
except Exception, ex: except Exception as ex:
errMsg = "you have provided an invalid and/or unreadable configuration file ('%s')" % getSafeExString(ex) errMsg = "you have provided an invalid and/or unreadable configuration file ('%s')" % getSafeExString(ex)
raise SqlmapSyntaxException(errMsg) raise SqlmapSyntaxException(errMsg)

View File

@ -78,7 +78,7 @@ def parseXmlNode(node):
def loadBoundaries(): def loadBoundaries():
try: try:
doc = et.parse(paths.BOUNDARIES_XML) doc = et.parse(paths.BOUNDARIES_XML)
except Exception, ex: except Exception as ex:
errMsg = "something appears to be wrong with " errMsg = "something appears to be wrong with "
errMsg += "the file '%s' ('%s'). Please make " % (paths.BOUNDARIES_XML, getSafeExString(ex)) errMsg += "the file '%s' ('%s'). Please make " % (paths.BOUNDARIES_XML, getSafeExString(ex))
errMsg += "sure that you haven't made any changes to it" errMsg += "sure that you haven't made any changes to it"
@ -93,7 +93,7 @@ def loadPayloads():
try: try:
doc = et.parse(payloadFilePath) doc = et.parse(payloadFilePath)
except Exception, ex: except Exception as ex:
errMsg = "something appears to be wrong with " errMsg = "something appears to be wrong with "
errMsg += "the file '%s' ('%s'). Please make " % (payloadFilePath, getSafeExString(ex)) errMsg += "the file '%s' ('%s'). Please make " % (payloadFilePath, getSafeExString(ex))
errMsg += "sure that you haven't made any changes to it" errMsg += "sure that you haven't made any changes to it"

View File

@ -556,11 +556,11 @@ class Connect(object):
if hasattr(conn.fp, '_sock'): if hasattr(conn.fp, '_sock'):
conn.fp._sock.close() conn.fp._sock.close()
conn.close() conn.close()
except Exception, ex: except Exception as ex:
warnMsg = "problem occurred during connection closing ('%s')" % getSafeExString(ex) warnMsg = "problem occurred during connection closing ('%s')" % getSafeExString(ex)
logger.warn(warnMsg) logger.warn(warnMsg)
except SqlmapConnectionException, ex: except SqlmapConnectionException as ex:
if conf.proxyList and not kb.threadException: if conf.proxyList and not kb.threadException:
warnMsg = "unable to connect to the target URL ('%s')" % ex warnMsg = "unable to connect to the target URL ('%s')" % ex
logger.critical(warnMsg) logger.critical(warnMsg)
@ -569,7 +569,7 @@ class Connect(object):
else: else:
raise raise
except urllib2.HTTPError, ex: except urllib2.HTTPError as ex:
page = None page = None
responseHeaders = None responseHeaders = None
@ -834,7 +834,7 @@ class Connect(object):
try: try:
payload = function(payload=payload, headers=auxHeaders, delimiter=delimiter, hints=hints) payload = function(payload=payload, headers=auxHeaders, delimiter=delimiter, hints=hints)
except Exception, ex: except Exception as ex:
errMsg = "error occurred while running tamper " errMsg = "error occurred while running tamper "
errMsg += "function '%s' ('%s')" % (function.func_name, getSafeExString(ex)) errMsg += "function '%s' ('%s')" % (function.func_name, getSafeExString(ex))
raise SqlmapGenericException(errMsg) raise SqlmapGenericException(errMsg)
@ -1097,7 +1097,7 @@ class Connect(object):
while True: while True:
try: try:
compiler.parse(unicodeencode(conf.evalCode.replace(';', '\n'))) compiler.parse(unicodeencode(conf.evalCode.replace(';', '\n')))
except SyntaxError, ex: except SyntaxError as ex:
if ex.text: if ex.text:
original = replacement = ex.text.strip() original = replacement = ex.text.strip()
if '=' in original: if '=' in original:

View File

@ -149,7 +149,7 @@ if __name__ == "__main__":
time.sleep(1) time.sleep(1)
except socket.error, ex: except socket.error as ex:
if 'Permission' in str(ex): if 'Permission' in str(ex):
print "[x] Please run with sudo/Administrator privileges" print "[x] Please run with sudo/Administrator privileges"
else: else:

View File

@ -63,7 +63,7 @@ class HTTPSConnection(httplib.HTTPSConnection):
break break
else: else:
sock.close() sock.close()
except (ssl.SSLError, socket.error, httplib.BadStatusLine), ex: except (ssl.SSLError, socket.error, httplib.BadStatusLine) as ex:
self._tunnel_host = None self._tunnel_host = None
logger.debug("SSL connection error occurred ('%s')" % getSafeExString(ex)) logger.debug("SSL connection error occurred ('%s')" % getSafeExString(ex))
@ -83,7 +83,7 @@ class HTTPSConnection(httplib.HTTPSConnection):
break break
else: else:
sock.close() sock.close()
except (ssl.SSLError, socket.error, httplib.BadStatusLine), ex: except (ssl.SSLError, socket.error, httplib.BadStatusLine) as ex:
self._tunnel_host = None self._tunnel_host = None
logger.debug("SSL connection error occurred ('%s')" % getSafeExString(ex)) logger.debug("SSL connection error occurred ('%s')" % getSafeExString(ex))

View File

@ -24,7 +24,7 @@ class HTTPSPKIAuthHandler(urllib2.HTTPSHandler):
try: try:
# Reference: https://docs.python.org/2/library/ssl.html#ssl.SSLContext.load_cert_chain # Reference: https://docs.python.org/2/library/ssl.html#ssl.SSLContext.load_cert_chain
return httplib.HTTPSConnection(host, cert_file=self.auth_file, key_file=self.auth_file, timeout=conf.timeout) return httplib.HTTPSConnection(host, cert_file=self.auth_file, key_file=self.auth_file, timeout=conf.timeout)
except IOError, ex: except IOError as ex:
errMsg = "error occurred while using key " errMsg = "error occurred while using key "
errMsg += "file '%s' ('%s')" % (self.auth_file, getSafeExString(ex)) errMsg += "file '%s' ('%s')" % (self.auth_file, getSafeExString(ex))
raise SqlmapConnectionException(errMsg) raise SqlmapConnectionException(errMsg)

View File

@ -95,7 +95,7 @@ class Database(object):
self.cursor.execute(statement, arguments) self.cursor.execute(statement, arguments)
else: else:
self.cursor.execute(statement) self.cursor.execute(statement)
except sqlite3.OperationalError, ex: except sqlite3.OperationalError as ex:
if "locked" not in getSafeExString(ex): if "locked" not in getSafeExString(ex):
raise raise
else: else:
@ -266,7 +266,7 @@ def setRestAPILog():
try: try:
conf.databaseCursor = Database(conf.database) conf.databaseCursor = Database(conf.database)
conf.databaseCursor.connect("client") conf.databaseCursor.connect("client")
except sqlite3.OperationalError, ex: except sqlite3.OperationalError as ex:
raise SqlmapConnectionException("%s ('%s')" % (ex, conf.database)) raise SqlmapConnectionException("%s ('%s')" % (ex, conf.database))
# Set a logging handler that writes log messages to a IPC database # Set a logging handler that writes log messages to a IPC database
@ -689,7 +689,7 @@ def server(host=RESTAPI_DEFAULT_ADDRESS, port=RESTAPI_DEFAULT_PORT, adapter=REST
eventlet.monkey_patch() eventlet.monkey_patch()
logger.debug("Using adapter '%s' to run bottle" % adapter) logger.debug("Using adapter '%s' to run bottle" % adapter)
run(host=host, port=port, quiet=True, debug=True, server=adapter) run(host=host, port=port, quiet=True, debug=True, server=adapter)
except socket.error, ex: except socket.error as ex:
if "already in use" in getSafeExString(ex): if "already in use" in getSafeExString(ex):
logger.error("Address already in use ('%s:%s')" % (host, port)) logger.error("Address already in use ('%s:%s')" % (host, port))
else: else:
@ -743,7 +743,7 @@ def client(host=RESTAPI_DEFAULT_ADDRESS, port=RESTAPI_DEFAULT_PORT, username=Non
try: try:
_client(addr) _client(addr)
except Exception, ex: except Exception as ex:
if not isinstance(ex, urllib2.HTTPError) or ex.code == httplib.UNAUTHORIZED: if not isinstance(ex, urllib2.HTTPError) or ex.code == httplib.UNAUTHORIZED:
errMsg = "There has been a problem while connecting to the " errMsg = "There has been a problem while connecting to the "
errMsg += "REST-JSON API server at '%s' " % addr errMsg += "REST-JSON API server at '%s' " % addr
@ -798,7 +798,7 @@ def client(host=RESTAPI_DEFAULT_ADDRESS, port=RESTAPI_DEFAULT_PORT, username=Non
try: try:
argv = ["sqlmap.py"] + shlex.split(command)[1:] argv = ["sqlmap.py"] + shlex.split(command)[1:]
except Exception, ex: except Exception as ex:
logger.error("Error occurred while parsing arguments ('%s')" % ex) logger.error("Error occurred while parsing arguments ('%s')" % ex)
taskid = None taskid = None
continue continue

View File

@ -63,14 +63,14 @@ def crawl(target):
try: try:
if current: if current:
content = Request.getPage(url=current, crawling=True, raise404=False)[0] content = Request.getPage(url=current, crawling=True, raise404=False)[0]
except SqlmapConnectionException, ex: except SqlmapConnectionException as ex:
errMsg = "connection exception detected ('%s'). skipping " % getSafeExString(ex) errMsg = "connection exception detected ('%s'). skipping " % getSafeExString(ex)
errMsg += "URL '%s'" % current errMsg += "URL '%s'" % current
logger.critical(errMsg) logger.critical(errMsg)
except SqlmapSyntaxException: except SqlmapSyntaxException:
errMsg = "invalid URL detected. skipping '%s'" % current errMsg = "invalid URL detected. skipping '%s'" % current
logger.critical(errMsg) logger.critical(errMsg)
except httplib.InvalidURL, ex: except httplib.InvalidURL as ex:
errMsg = "invalid URL detected ('%s'). skipping " % getSafeExString(ex) errMsg = "invalid URL detected ('%s'). skipping " % getSafeExString(ex)
errMsg += "URL '%s'" % current errMsg += "URL '%s'" % current
logger.critical(errMsg) logger.critical(errMsg)
@ -138,7 +138,7 @@ def crawl(target):
url = urlparse.urljoin(target, "/sitemap.xml") url = urlparse.urljoin(target, "/sitemap.xml")
try: try:
items = parseSitemap(url) items = parseSitemap(url)
except SqlmapConnectionException, ex: except SqlmapConnectionException as ex:
if "page not found" in getSafeExString(ex): if "page not found" in getSafeExString(ex):
found = False found = False
logger.warn("'sitemap.xml' not found") logger.warn("'sitemap.xml' not found")

View File

@ -998,7 +998,7 @@ def dictionaryAttack(attack_dict):
kb.wordlists = dictPaths kb.wordlists = dictPaths
except Exception, ex: except Exception as ex:
warnMsg = "there was a problem while loading dictionaries" warnMsg = "there was a problem while loading dictionaries"
warnMsg += " ('%s')" % getSafeExString(ex) warnMsg += " ('%s')" % getSafeExString(ex)
logger.critical(warnMsg) logger.critical(warnMsg)

View File

@ -41,7 +41,7 @@ class HashDB(object):
threadData.hashDBCursor = connection.cursor() threadData.hashDBCursor = connection.cursor()
threadData.hashDBCursor.execute("CREATE TABLE IF NOT EXISTS storage (id INTEGER PRIMARY KEY, value TEXT)") threadData.hashDBCursor.execute("CREATE TABLE IF NOT EXISTS storage (id INTEGER PRIMARY KEY, value TEXT)")
connection.commit() connection.commit()
except Exception, ex: except Exception as ex:
errMsg = "error occurred while opening a session " errMsg = "error occurred while opening a session "
errMsg += "file '%s' ('%s')" % (self.filepath, getSafeExString(ex)) errMsg += "file '%s' ('%s')" % (self.filepath, getSafeExString(ex))
raise SqlmapConnectionException(errMsg) raise SqlmapConnectionException(errMsg)
@ -81,7 +81,7 @@ class HashDB(object):
try: try:
for row in self.cursor.execute("SELECT value FROM storage WHERE id=?", (hash_,)): for row in self.cursor.execute("SELECT value FROM storage WHERE id=?", (hash_,)):
retVal = row[0] retVal = row[0]
except sqlite3.OperationalError, ex: except sqlite3.OperationalError as ex:
if any(_ in getSafeExString(ex) for _ in ("locked", "no such table")): if any(_ in getSafeExString(ex) for _ in ("locked", "no such table")):
warnMsg = "problem occurred while accessing session file '%s' ('%s')" % (self.filepath, getSafeExString(ex)) warnMsg = "problem occurred while accessing session file '%s' ('%s')" % (self.filepath, getSafeExString(ex))
singleTimeWarnMessage(warnMsg) singleTimeWarnMessage(warnMsg)
@ -89,7 +89,7 @@ class HashDB(object):
break break
else: else:
raise raise
except sqlite3.DatabaseError, ex: except sqlite3.DatabaseError as ex:
errMsg = "error occurred while accessing session file '%s' ('%s'). " % (self.filepath, getSafeExString(ex)) errMsg = "error occurred while accessing session file '%s' ('%s'). " % (self.filepath, getSafeExString(ex))
errMsg += "If the problem persists please rerun with '--flush-session'" errMsg += "If the problem persists please rerun with '--flush-session'"
raise SqlmapConnectionException(errMsg) raise SqlmapConnectionException(errMsg)
@ -141,7 +141,7 @@ class HashDB(object):
self.cursor.execute("INSERT INTO storage VALUES (?, ?)", (hash_, value,)) self.cursor.execute("INSERT INTO storage VALUES (?, ?)", (hash_, value,))
except sqlite3.IntegrityError: except sqlite3.IntegrityError:
self.cursor.execute("UPDATE storage SET value=? WHERE id=?", (value, hash_,)) self.cursor.execute("UPDATE storage SET value=? WHERE id=?", (value, hash_,))
except sqlite3.DatabaseError, ex: except sqlite3.DatabaseError as ex:
if not os.path.exists(self.filepath): if not os.path.exists(self.filepath):
debugMsg = "session file '%s' does not exist" % self.filepath debugMsg = "session file '%s' does not exist" % self.filepath
logger.debug(debugMsg) logger.debug(debugMsg)

View File

@ -175,7 +175,7 @@ def pivotDumpTable(table, colList, count=None, blind=True, alias=None):
warnMsg += "will display partial output" warnMsg += "will display partial output"
logger.warn(warnMsg) logger.warn(warnMsg)
except SqlmapConnectionException, ex: except SqlmapConnectionException as ex:
errMsg = "connection exception detected ('%s'). sqlmap " % getSafeExString(ex) errMsg = "connection exception detected ('%s'). sqlmap " % getSafeExString(ex)
errMsg += "will display partial output" errMsg += "will display partial output"

View File

@ -79,5 +79,5 @@ def purge(directory):
try: try:
shutil.rmtree(directory) shutil.rmtree(directory)
except OSError, ex: except OSError as ex:
logger.error("problem occurred while removing directory '%s' ('%s')" % (directory, getSafeExString(ex))) logger.error("problem occurred while removing directory '%s' ('%s')" % (directory, getSafeExString(ex)))

View File

@ -54,7 +54,7 @@ def _search(dork):
try: try:
req = urllib2.Request("https://www.google.com/ncr", headers=headers) req = urllib2.Request("https://www.google.com/ncr", headers=headers)
conn = urllib2.urlopen(req) conn = urllib2.urlopen(req)
except Exception, ex: except Exception as ex:
errMsg = "unable to connect to Google ('%s')" % getSafeExString(ex) errMsg = "unable to connect to Google ('%s')" % getSafeExString(ex)
raise SqlmapConnectionException(errMsg) raise SqlmapConnectionException(errMsg)
@ -91,7 +91,7 @@ def _search(dork):
except urllib2.HTTPError, e: except urllib2.HTTPError, e:
try: try:
page = e.read() page = e.read()
except Exception, ex: except Exception as ex:
warnMsg = "problem occurred while trying to get " warnMsg = "problem occurred while trying to get "
warnMsg += "an error page information (%s)" % getSafeExString(ex) warnMsg += "an error page information (%s)" % getSafeExString(ex)
logger.critical(warnMsg) logger.critical(warnMsg)
@ -183,7 +183,7 @@ def search(dork):
try: try:
return _search(dork) return _search(dork)
except SqlmapBaseException, ex: except SqlmapBaseException as ex:
if conf.proxyList: if conf.proxyList:
logger.critical(getSafeExString(ex)) logger.critical(getSafeExString(ex))

View File

@ -43,7 +43,7 @@ class Connector(GenericConnector):
try: try:
self.connector = cx_Oracle.connect(dsn=self.__dsn, user=self.user, password=self.password, mode=cx_Oracle.SYSDBA) self.connector = cx_Oracle.connect(dsn=self.__dsn, user=self.user, password=self.password, mode=cx_Oracle.SYSDBA)
logger.info("successfully connected as SYSDBA") logger.info("successfully connected as SYSDBA")
except (cx_Oracle.OperationalError, cx_Oracle.DatabaseError, cx_Oracle.InterfaceError), ex: except (cx_Oracle.OperationalError, cx_Oracle.DatabaseError, cx_Oracle.InterfaceError) as ex:
if "Oracle Client library" in str(ex): if "Oracle Client library" in str(ex):
msg = re.sub(r"DPI-\d+:\s+", "", str(ex)) msg = re.sub(r"DPI-\d+:\s+", "", str(ex))
msg = re.sub(r': ("[^"]+")', r" (\g<1>)", msg) msg = re.sub(r': ("[^"]+")', r" (\g<1>)", msg)

View File

@ -70,7 +70,7 @@ class Custom:
output = NULL output = NULL
except SqlmapNoneDataException, ex: except SqlmapNoneDataException as ex:
logger.warn(ex) logger.warn(ex)
return output return output

View File

@ -444,13 +444,13 @@ class Entries:
"db": safeSQLIdentificatorNaming(conf.db)} "db": safeSQLIdentificatorNaming(conf.db)}
try: try:
attackDumpedTable() attackDumpedTable()
except (IOError, OSError), ex: except (IOError, OSError) as ex:
errMsg = "an error occurred while attacking " errMsg = "an error occurred while attacking "
errMsg += "table dump ('%s')" % getSafeExString(ex) errMsg += "table dump ('%s')" % getSafeExString(ex)
logger.critical(errMsg) logger.critical(errMsg)
conf.dumper.dbTableValues(kb.data.dumpedTable) conf.dumper.dbTableValues(kb.data.dumpedTable)
except SqlmapConnectionException, ex: except SqlmapConnectionException as ex:
errMsg = "connection exception detected in dumping phase " errMsg = "connection exception detected in dumping phase "
errMsg += "('%s')" % getSafeExString(ex) errMsg += "('%s')" % getSafeExString(ex)
logger.critical(errMsg) logger.critical(errMsg)

View File

@ -140,7 +140,7 @@ class Takeover(Abstraction, Metasploit, ICMPsh, Registry, Miscellaneous):
try: try:
with open(filename, "wb") as f: with open(filename, "wb") as f:
f.write("1") f.write("1")
except IOError, ex: except IOError as ex:
errMsg = "there has been a file opening/writing error " errMsg = "there has been a file opening/writing error "
errMsg += "for filename '%s' ('%s')" % (filename, getSafeExString(ex)) errMsg += "for filename '%s' ('%s')" % (filename, getSafeExString(ex))
raise SqlmapSystemException(errMsg) raise SqlmapSystemException(errMsg)

View File

@ -1141,7 +1141,7 @@ def _ParseFileEx(file, base_uri,
for form in forms: for form in forms:
try: try:
form.fixup() form.fixup()
except AttributeError, ex: except AttributeError as ex:
if not any(_ in str(ex) for _ in ("is disabled", "is readonly")): if not any(_ in str(ex) for _ in ("is disabled", "is readonly")):
raise raise
return forms return forms

View File

@ -5,7 +5,7 @@ fb6be55d21a70765e35549af2484f762 extra/cloak/__init__.py
6baecbea87de0a56f99e59bfe982ebc5 extra/dbgtool/dbgtool.py 6baecbea87de0a56f99e59bfe982ebc5 extra/dbgtool/dbgtool.py
fb6be55d21a70765e35549af2484f762 extra/dbgtool/__init__.py fb6be55d21a70765e35549af2484f762 extra/dbgtool/__init__.py
acba8b5dc93db0fe6b2b04ff0138c33c extra/icmpsh/icmpsh.exe_ acba8b5dc93db0fe6b2b04ff0138c33c extra/icmpsh/icmpsh.exe_
708e9fd35dabcbfcd10e91bbc14f091f extra/icmpsh/icmpsh_m.py 216a0e04bef7053e6aa35ca98907007e extra/icmpsh/icmpsh_m.py
2d020d2bdcee1170805f48839fdb89df extra/icmpsh/__init__.py 2d020d2bdcee1170805f48839fdb89df extra/icmpsh/__init__.py
fb6be55d21a70765e35549af2484f762 extra/__init__.py fb6be55d21a70765e35549af2484f762 extra/__init__.py
ff90cb0366f7cefbdd6e573e27e6238c extra/runcmd/runcmd.exe_ ff90cb0366f7cefbdd6e573e27e6238c extra/runcmd/runcmd.exe_
@ -21,64 +21,64 @@ e4805169a081b834ca51a60a150c7247 extra/shutils/newlines.py
fb6be55d21a70765e35549af2484f762 extra/sqlharvest/__init__.py fb6be55d21a70765e35549af2484f762 extra/sqlharvest/__init__.py
53d5dcba047f1285e32b9e88d2803ebf extra/sqlharvest/sqlharvest.py 53d5dcba047f1285e32b9e88d2803ebf extra/sqlharvest/sqlharvest.py
fb6be55d21a70765e35549af2484f762 extra/wafdetectify/__init__.py fb6be55d21a70765e35549af2484f762 extra/wafdetectify/__init__.py
f73623c18b7f6ebb71f10e124b1b93c9 extra/wafdetectify/wafdetectify.py d7e3aa3221c5ddb106a029720bf9fb5e extra/wafdetectify/wafdetectify.py
d0f2b424f5b2b06f26cdd7076d61be6e lib/controller/action.py ec782b9cdb8d857a80b6ecf0f32db7f4 lib/controller/action.py
eaccf6204d8c44cee9daba955af0c85e lib/controller/checks.py d62df9d0d5643d67b75f836ea87827c7 lib/controller/checks.py
3c18f0b1d1b9fda682201a264f170b31 lib/controller/controller.py c4d559a98cfc62b401ef7e0bfab782f0 lib/controller/controller.py
e97a9d34fef5761a8eab6432ce3c7c53 lib/controller/handler.py c1da277517c7ec4c23e953a51b51e203 lib/controller/handler.py
fb6be55d21a70765e35549af2484f762 lib/controller/__init__.py fb6be55d21a70765e35549af2484f762 lib/controller/__init__.py
ed7874be0d2d3802f3d20184f2b280d5 lib/core/agent.py ed7874be0d2d3802f3d20184f2b280d5 lib/core/agent.py
fdabbf8dda7277e5f4e3d0a6252cffb6 lib/core/bigarray.py 44ac129c1b3b6130b4f1bc7b93036278 lib/core/bigarray.py
4706fb856c1662ef5afd747544d0d8cb lib/core/common.py 5da00a381cc1847201ffbeb663653ecd lib/core/common.py
de8d27ae6241163ff9e97aa9e7c51a18 lib/core/convert.py de8d27ae6241163ff9e97aa9e7c51a18 lib/core/convert.py
abcb1121eb56d3401839d14e8ed06b6e lib/core/data.py abcb1121eb56d3401839d14e8ed06b6e lib/core/data.py
db60c6ebb63b72ed119e304b359fc1a6 lib/core/datatype.py db60c6ebb63b72ed119e304b359fc1a6 lib/core/datatype.py
b7c912e2af7a3354f6d7c04f556a80b2 lib/core/decorators.py b7c912e2af7a3354f6d7c04f556a80b2 lib/core/decorators.py
5f4680b769ae07f22157bd832c97cf8f lib/core/defaults.py 5f4680b769ae07f22157bd832c97cf8f lib/core/defaults.py
9dfc69ba47209a4ceca494dde9ee8183 lib/core/dicts.py 9dfc69ba47209a4ceca494dde9ee8183 lib/core/dicts.py
040895bafa05783ca1a2e6c74d6de2c6 lib/core/dump.py 070e9439a18d2d9067e3a135b239fa3f lib/core/dump.py
5c91145204092b995ed1ac641e9e291d lib/core/enums.py 5c91145204092b995ed1ac641e9e291d lib/core/enums.py
84ef8f32e4582fcc294dc14e1997131d lib/core/exception.py 84ef8f32e4582fcc294dc14e1997131d lib/core/exception.py
fb6be55d21a70765e35549af2484f762 lib/core/__init__.py fb6be55d21a70765e35549af2484f762 lib/core/__init__.py
18c896b157b03af716542e5fe9233ef9 lib/core/log.py 18c896b157b03af716542e5fe9233ef9 lib/core/log.py
fa9f24e88c81a6cef52da3dd5e637010 lib/core/optiondict.py fa9f24e88c81a6cef52da3dd5e637010 lib/core/optiondict.py
8867c1cb5a045cea99d8a9a7ceea6abf lib/core/option.py 95f9836ad46146537cc16f918a002118 lib/core/option.py
fe370021c6bc99daf44b2bfc0d1effb3 lib/core/patch.py fe370021c6bc99daf44b2bfc0d1effb3 lib/core/patch.py
0f1d79ada721cf6def611b21b03d68af lib/core/profiling.py 0f1d79ada721cf6def611b21b03d68af lib/core/profiling.py
5e2c16a8e2daee22dd545df13386e7a3 lib/core/readlineng.py 5e2c16a8e2daee22dd545df13386e7a3 lib/core/readlineng.py
9a7d68d5fa01561500423791f15cc676 lib/core/replication.py 7d8a22c582ad201f65b73225e4456170 lib/core/replication.py
3179d34f371e0295dd4604568fb30bcd lib/core/revision.py 3179d34f371e0295dd4604568fb30bcd lib/core/revision.py
d6269c55789f78cf707e09a0f5b45443 lib/core/session.py d6269c55789f78cf707e09a0f5b45443 lib/core/session.py
a6c91e706b0c752a7c89ed1a5737b8e6 lib/core/settings.py 71bd4886e45f4d0f6d9f556c12a06c7f lib/core/settings.py
a8a7501d1e6b21669b858a62e921d191 lib/core/shell.py a8a7501d1e6b21669b858a62e921d191 lib/core/shell.py
5dc606fdf0afefd4b305169c21ab2612 lib/core/subprocessng.py 5dc606fdf0afefd4b305169c21ab2612 lib/core/subprocessng.py
eec3080ba5baca44c6de4595f1c92a0d lib/core/target.py 2d29cdb5e7bc612b2ade8e4ab0b1495e lib/core/target.py
a71b23612f2f2c7be8a843858408fdcc lib/core/testing.py a71b23612f2f2c7be8a843858408fdcc lib/core/testing.py
5ebd996b2a77449df90320847e30a073 lib/core/threads.py bf4bdec9b247a999f877a5e5d7daeb70 lib/core/threads.py
2c263c8610667fdc593c50a35ab20f57 lib/core/unescaper.py 2c263c8610667fdc593c50a35ab20f57 lib/core/unescaper.py
5bd7cd6553a4a1c85cbaaddc268108e4 lib/core/update.py ff45c74515fecc95277f7b9ad945f17c lib/core/update.py
5232b05d5c42a0e5a5a2d5952c6c39a5 lib/core/wordlist.py b40f4c20a38729bb4933b8221665f106 lib/core/wordlist.py
fb6be55d21a70765e35549af2484f762 lib/__init__.py fb6be55d21a70765e35549af2484f762 lib/__init__.py
4881480d0c1778053908904e04570dc3 lib/parse/banner.py 4881480d0c1778053908904e04570dc3 lib/parse/banner.py
65a5b384bc3d545b366b344eddeb0805 lib/parse/cmdline.py 80c67d8d0add0097fd0284f043eee939 lib/parse/cmdline.py
85e44fc7673a661305909a85ed24c5ae lib/parse/configfile.py 06ccbccb63255c8f1c35950a4c8a6f6b lib/parse/configfile.py
9b33e52f697d6e915c7a10153562ce89 lib/parse/handler.py 9b33e52f697d6e915c7a10153562ce89 lib/parse/handler.py
43deb2400e269e602e916efaec7c0903 lib/parse/headers.py 43deb2400e269e602e916efaec7c0903 lib/parse/headers.py
77e802323ffa718dd9c27512656c0a70 lib/parse/html.py 77e802323ffa718dd9c27512656c0a70 lib/parse/html.py
fb6be55d21a70765e35549af2484f762 lib/parse/__init__.py fb6be55d21a70765e35549af2484f762 lib/parse/__init__.py
92b55cf4246ae7ff6651ac8deb4a0ac5 lib/parse/payloads.py adcecd2d6a8667b22872a563eb83eac0 lib/parse/payloads.py
993104046c7d97120613409ef7780c76 lib/parse/sitemap.py 993104046c7d97120613409ef7780c76 lib/parse/sitemap.py
e4ea70bcd461f5176867dcd89d372386 lib/request/basicauthhandler.py e4ea70bcd461f5176867dcd89d372386 lib/request/basicauthhandler.py
6076c01e84b589adb97cac421a7d5251 lib/request/basic.py 6076c01e84b589adb97cac421a7d5251 lib/request/basic.py
fc25d951217077fe655ed2a3a81552ae lib/request/comparison.py fc25d951217077fe655ed2a3a81552ae lib/request/comparison.py
8e7f52dd4ef26f90310fc1082e17f4f8 lib/request/connect.py 2192d65f4a8ba15c081e12590b6e517f lib/request/connect.py
7cba86090b02558f04c6692cef66e772 lib/request/direct.py 7cba86090b02558f04c6692cef66e772 lib/request/direct.py
0a5cc34a7bbe709684ce32b4b46afd32 lib/request/dns.py 4c7afe3d4be0c2d767b11df36b46bbcc lib/request/dns.py
7bab2719ef2a6f1ddd838fa2335ae635 lib/request/httpshandler.py ceac6b3bf1f726f8ff43c6814e9d7281 lib/request/httpshandler.py
fb6be55d21a70765e35549af2484f762 lib/request/__init__.py fb6be55d21a70765e35549af2484f762 lib/request/__init__.py
00720f9eddf42f4fefa083fba40f69ed lib/request/inject.py 00720f9eddf42f4fefa083fba40f69ed lib/request/inject.py
52a067bd2fe91ea9395269a684380cbb lib/request/methodrequest.py 52a067bd2fe91ea9395269a684380cbb lib/request/methodrequest.py
321786eeb43821106e41fc72bd4f9901 lib/request/pkihandler.py ac482ec52227daf48f523827dd67078f lib/request/pkihandler.py
16ff6e078819fe517b1fc0ae3cbc1aa8 lib/request/rangehandler.py 16ff6e078819fe517b1fc0ae3cbc1aa8 lib/request/rangehandler.py
e79048c2a08c1a47efd5652f59c4417d lib/request/redirecthandler.py e79048c2a08c1a47efd5652f59c4417d lib/request/redirecthandler.py
1e60edebdb3997055616d12f4a932375 lib/request/templates.py 1e60edebdb3997055616d12f4a932375 lib/request/templates.py
@ -101,20 +101,20 @@ fb6be55d21a70765e35549af2484f762 lib/techniques/__init__.py
fb6be55d21a70765e35549af2484f762 lib/techniques/union/__init__.py fb6be55d21a70765e35549af2484f762 lib/techniques/union/__init__.py
baa3946c23749d898f473dba0f4eecff lib/techniques/union/test.py baa3946c23749d898f473dba0f4eecff lib/techniques/union/test.py
d32988e13713417286ab83a00856858e lib/techniques/union/use.py d32988e13713417286ab83a00856858e lib/techniques/union/use.py
bf5e2a2b265c0d8b9f054c94fb74dcb9 lib/utils/api.py 31d0ac4f92d4ffddf9936499829484cc lib/utils/api.py
544dee96e782560fe4355cbf6ee19b8c lib/utils/brute.py 544dee96e782560fe4355cbf6ee19b8c lib/utils/brute.py
ac0780394af107b9a516463efc4de2e5 lib/utils/crawler.py b27421eb57cea711050135f84be99258 lib/utils/crawler.py
da4bc159e6920f1f7e45c92c39941690 lib/utils/deps.py da4bc159e6920f1f7e45c92c39941690 lib/utils/deps.py
f7c64515a3e4fcfe8266ca2be77be565 lib/utils/getch.py f7c64515a3e4fcfe8266ca2be77be565 lib/utils/getch.py
0d497906b06eb82d14da676e9f9c98f5 lib/utils/har.py 0d497906b06eb82d14da676e9f9c98f5 lib/utils/har.py
1fc47aa8860f809d103048e4eb51cdd2 lib/utils/hashdb.py d11f7f208ccf3a7753ccc417b4b01901 lib/utils/hashdb.py
ef3fadd11bc45552d26f00b34f732097 lib/utils/hash.py 3302ee15997023b20babaa7c67e6b0b8 lib/utils/hash.py
17009289bb5c0dc0cceaa483113101e1 lib/utils/htmlentities.py 17009289bb5c0dc0cceaa483113101e1 lib/utils/htmlentities.py
fb6be55d21a70765e35549af2484f762 lib/utils/__init__.py fb6be55d21a70765e35549af2484f762 lib/utils/__init__.py
2a40a6bd1779f7db5199f089411b1c1c lib/utils/pivotdumptable.py 833b05c72c9fa60b0a25b0a26f8f31fb lib/utils/pivotdumptable.py
5a8902fd6fa94ea73cf44952f9ed5a57 lib/utils/progress.py 5a8902fd6fa94ea73cf44952f9ed5a57 lib/utils/progress.py
a41136344768902f82b2855e88fd228d lib/utils/purge.py b79654e49850937ab2dc8e0d73625cab lib/utils/purge.py
631aa9e193e459875528fee78e9a770b lib/utils/search.py 081765fc1b3ad8a63f72e9c0e02ff00e lib/utils/search.py
8d6b244ca3d6f99a9d6cd8c1856ccfeb lib/utils/sqlalchemy.py 8d6b244ca3d6f99a9d6cd8c1856ccfeb lib/utils/sqlalchemy.py
a90c568a9b88eaea832a77581bd39d85 lib/utils/timeout.py a90c568a9b88eaea832a77581bd39d85 lib/utils/timeout.py
164f830baad3e13b226ee57d44d69dfa lib/utils/versioncheck.py 164f830baad3e13b226ee57d44d69dfa lib/utils/versioncheck.py
@ -183,7 +183,7 @@ fd79ec2504b6bada7d2da233a549af53 plugins/dbms/mysql/fingerprint.py
040835bde6be85ebc1a6667dcd08940e plugins/dbms/mysql/__init__.py 040835bde6be85ebc1a6667dcd08940e plugins/dbms/mysql/__init__.py
dd6bd1d3d561755b96e953ede16cb8fc plugins/dbms/mysql/syntax.py dd6bd1d3d561755b96e953ede16cb8fc plugins/dbms/mysql/syntax.py
6c91ef5b5a6cd29cef4bd9bc3c369454 plugins/dbms/mysql/takeover.py 6c91ef5b5a6cd29cef4bd9bc3c369454 plugins/dbms/mysql/takeover.py
fba38967a03e30a162660dd3685a46f2 plugins/dbms/oracle/connector.py 6e6c992f7fff55a8aa79d14437c648e7 plugins/dbms/oracle/connector.py
3266e81eb4a3c083d27c7a255be38893 plugins/dbms/oracle/enumeration.py 3266e81eb4a3c083d27c7a255be38893 plugins/dbms/oracle/enumeration.py
5bdd5288c8303ea21a5f8409332e32a1 plugins/dbms/oracle/filesystem.py 5bdd5288c8303ea21a5f8409332e32a1 plugins/dbms/oracle/filesystem.py
8813f44f3b67fc98024199c7b8398811 plugins/dbms/oracle/fingerprint.py 8813f44f3b67fc98024199c7b8398811 plugins/dbms/oracle/fingerprint.py
@ -212,9 +212,9 @@ d2391dfe74f053eb5f31b0efad3fdda0 plugins/dbms/sqlite/connector.py
ec3f406591fc9472f5750bd40993e72e plugins/dbms/sybase/syntax.py ec3f406591fc9472f5750bd40993e72e plugins/dbms/sybase/syntax.py
369476221b3059106410de05766227e0 plugins/dbms/sybase/takeover.py 369476221b3059106410de05766227e0 plugins/dbms/sybase/takeover.py
147f6af265f6b5412bbd7aaebef95881 plugins/generic/connector.py 147f6af265f6b5412bbd7aaebef95881 plugins/generic/connector.py
e492c91101cecd66c9f6a630eab85368 plugins/generic/custom.py 54ac71c46c67c81196e2e6707e0989cf plugins/generic/custom.py
a3fd48c7094fca6692be8b1ae5e29cea plugins/generic/databases.py a3fd48c7094fca6692be8b1ae5e29cea plugins/generic/databases.py
6283b356e6055bb9071f00cdf66dea24 plugins/generic/entries.py 9c2c830b3cf66953ecffa6cf88fc7c14 plugins/generic/entries.py
f3624debb8ae6fbcfb5f1b7f1d0743d1 plugins/generic/enumeration.py f3624debb8ae6fbcfb5f1b7f1d0743d1 plugins/generic/enumeration.py
cda119b7b0d1afeb60f912009cdb0cf5 plugins/generic/filesystem.py cda119b7b0d1afeb60f912009cdb0cf5 plugins/generic/filesystem.py
65e75cd3c2c7acffa6ac13b086e0f383 plugins/generic/fingerprint.py 65e75cd3c2c7acffa6ac13b086e0f383 plugins/generic/fingerprint.py
@ -222,7 +222,7 @@ fb6be55d21a70765e35549af2484f762 plugins/generic/__init__.py
de1928d6865547764ae9a896da4bf1d4 plugins/generic/misc.py de1928d6865547764ae9a896da4bf1d4 plugins/generic/misc.py
8bc2b5dfbc4c644ed95adfe8099ee067 plugins/generic/search.py 8bc2b5dfbc4c644ed95adfe8099ee067 plugins/generic/search.py
1989f6cbed217f4222dc2dce72992d91 plugins/generic/syntax.py 1989f6cbed217f4222dc2dce72992d91 plugins/generic/syntax.py
d152384fffebfa010188707bf683cd3c plugins/generic/takeover.py 44c388ea08d4296e2bf2706e19cbe64a plugins/generic/takeover.py
a4b9f764140e89279e3d0dace99bfa5f plugins/generic/users.py a4b9f764140e89279e3d0dace99bfa5f plugins/generic/users.py
fb6be55d21a70765e35549af2484f762 plugins/__init__.py fb6be55d21a70765e35549af2484f762 plugins/__init__.py
5dc693e22f5d020c5c568d7325bd4226 shell/backdoors/backdoor.asp_ 5dc693e22f5d020c5c568d7325bd4226 shell/backdoors/backdoor.asp_
@ -336,7 +336,7 @@ ee25f2a03587e2c283eab0b36c9e5783 thirdparty/chardet/sbcsgroupprober.py
c9349824f2647962175d321cc0c52134 thirdparty/chardet/sjisprober.py c9349824f2647962175d321cc0c52134 thirdparty/chardet/sjisprober.py
bcae4c645a737d3f0e7c96a66528ca4a thirdparty/chardet/universaldetector.py bcae4c645a737d3f0e7c96a66528ca4a thirdparty/chardet/universaldetector.py
6f8b3e25472c02fb45a75215a175991f thirdparty/chardet/utf8prober.py 6f8b3e25472c02fb45a75215a175991f thirdparty/chardet/utf8prober.py
3c1b0d627e98643b317244ecfd240bb5 thirdparty/clientform/clientform.py 9df18debb6b5c5c0caff3d126958c8d7 thirdparty/clientform/clientform.py
722281d87fb13ec22555480f8f4c715b thirdparty/clientform/__init__.py 722281d87fb13ec22555480f8f4c715b thirdparty/clientform/__init__.py
0b625ccefa6b066f79d3cbb3639267e6 thirdparty/colorama/ansi.py 0b625ccefa6b066f79d3cbb3639267e6 thirdparty/colorama/ansi.py
93bb7f06c8300a91b533ea55e8aead43 thirdparty/colorama/ansitowin32.py 93bb7f06c8300a91b533ea55e8aead43 thirdparty/colorama/ansitowin32.py