mirror of
				https://github.com/sqlmapproject/sqlmap.git
				synced 2025-11-04 09:57:38 +03:00 
			
		
		
		
	More refactoring like the last couple of commits
This commit is contained in:
		
							parent
							
								
									fd705c3dff
								
							
						
					
					
						commit
						7074365f8e
					
				| 
						 | 
					@ -95,8 +95,8 @@ def main():
 | 
				
			||||||
            if filename[:-3] in sys.modules:
 | 
					            if filename[:-3] in sys.modules:
 | 
				
			||||||
                del sys.modules[filename[:-3]]
 | 
					                del sys.modules[filename[:-3]]
 | 
				
			||||||
            module = __import__(filename[:-3].encode(sys.getfilesystemencoding() or "utf8"))
 | 
					            module = __import__(filename[:-3].encode(sys.getfilesystemencoding() or "utf8"))
 | 
				
			||||||
        except ImportError, msg:
 | 
					        except ImportError as ex:
 | 
				
			||||||
            exit(colorize("[x] cannot import WAF script '%s' (%s)" % (filename[:-3], msg)))
 | 
					            exit(colorize("[x] cannot import WAF script '%s' (%s)" % (filename[:-3], ex)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        _ = dict(inspect.getmembers(module))
 | 
					        _ = dict(inspect.getmembers(module))
 | 
				
			||||||
        if "detect" not in _:
 | 
					        if "detect" not in _:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4409,9 +4409,9 @@ def resetCookieJar(cookieJar):
 | 
				
			||||||
                errMsg = "no valid cookies found"
 | 
					                errMsg = "no valid cookies found"
 | 
				
			||||||
                raise SqlmapGenericException(errMsg)
 | 
					                raise SqlmapGenericException(errMsg)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        except cookielib.LoadError, msg:
 | 
					        except cookielib.LoadError as ex:
 | 
				
			||||||
            errMsg = "there was a problem loading "
 | 
					            errMsg = "there was a problem loading "
 | 
				
			||||||
            errMsg += "cookies file ('%s')" % re.sub(r"(cookies) file '[^']+'", r"\g<1>", str(msg))
 | 
					            errMsg += "cookies file ('%s')" % re.sub(r"(cookies) file '[^']+'", r"\g<1>", getSafeExString(ex))
 | 
				
			||||||
            raise SqlmapGenericException(errMsg)
 | 
					            raise SqlmapGenericException(errMsg)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def decloakToTemp(filename):
 | 
					def decloakToTemp(filename):
 | 
				
			||||||
| 
						 | 
					@ -4738,8 +4738,6 @@ def getSafeExString(ex, encoding=None):
 | 
				
			||||||
    u'foobar'
 | 
					    u'foobar'
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    retVal = ex
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if getattr(ex, "message", None):
 | 
					    if getattr(ex, "message", None):
 | 
				
			||||||
        retVal = ex.message
 | 
					        retVal = ex.message
 | 
				
			||||||
    elif getattr(ex, "msg", None):
 | 
					    elif getattr(ex, "msg", None):
 | 
				
			||||||
| 
						 | 
					@ -4748,6 +4746,8 @@ def getSafeExString(ex, encoding=None):
 | 
				
			||||||
        retVal = ex[1]
 | 
					        retVal = ex[1]
 | 
				
			||||||
    elif isinstance(ex, (list, tuple)) and len(ex) > 0 and isinstance(ex[0], basestring):
 | 
					    elif isinstance(ex, (list, tuple)) and len(ex) > 0 and isinstance(ex[0], basestring):
 | 
				
			||||||
        retVal = ex[0]
 | 
					        retVal = ex[0]
 | 
				
			||||||
 | 
					    else:
 | 
				
			||||||
 | 
					        retVal = str(ex)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return getUnicode(retVal or "", encoding=encoding).strip()
 | 
					    return getUnicode(retVal or "", encoding=encoding).strip()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -429,7 +429,7 @@ class Dump(object):
 | 
				
			||||||
                        except Exception as ex:
 | 
					                        except Exception as ex:
 | 
				
			||||||
                            try:
 | 
					                            try:
 | 
				
			||||||
                                tempDir = tempfile.mkdtemp(prefix="sqlmapdb")
 | 
					                                tempDir = tempfile.mkdtemp(prefix="sqlmapdb")
 | 
				
			||||||
                            except IOError, _:
 | 
					                            except IOError as _:
 | 
				
			||||||
                                errMsg = "unable to write to the temporary directory ('%s'). " % _
 | 
					                                errMsg = "unable to write to the temporary directory ('%s'). " % _
 | 
				
			||||||
                                errMsg += "Please make sure that your disk is not full and "
 | 
					                                errMsg += "Please make sure that your disk is not full and "
 | 
				
			||||||
                                errMsg += "that you have sufficient write permissions to "
 | 
					                                errMsg += "that you have sufficient write permissions to "
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -846,8 +846,8 @@ def _setWafFunctions():
 | 
				
			||||||
                if filename[:-3] in sys.modules:
 | 
					                if filename[:-3] in sys.modules:
 | 
				
			||||||
                    del sys.modules[filename[:-3]]
 | 
					                    del sys.modules[filename[:-3]]
 | 
				
			||||||
                module = __import__(filename[:-3].encode(sys.getfilesystemencoding() or UNICODE_ENCODING))
 | 
					                module = __import__(filename[:-3].encode(sys.getfilesystemencoding() or UNICODE_ENCODING))
 | 
				
			||||||
            except ImportError, msg:
 | 
					            except ImportError as ex:
 | 
				
			||||||
                raise SqlmapSyntaxException("cannot import WAF script '%s' (%s)" % (filename[:-3], msg))
 | 
					                raise SqlmapSyntaxException("cannot import WAF script '%s' (%s)" % (filename[:-3], getSafeExString(ex)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            _ = dict(inspect.getmembers(module))
 | 
					            _ = dict(inspect.getmembers(module))
 | 
				
			||||||
            if "detect" not in _:
 | 
					            if "detect" not in _:
 | 
				
			||||||
| 
						 | 
					@ -1195,7 +1195,7 @@ def _setHTTPAuthentication():
 | 
				
			||||||
        elif authType == AUTH_TYPE.NTLM:
 | 
					        elif authType == AUTH_TYPE.NTLM:
 | 
				
			||||||
            regExp = "^(.*\\\\.*):(.*?)$"
 | 
					            regExp = "^(.*\\\\.*):(.*?)$"
 | 
				
			||||||
            errMsg = "HTTP NTLM authentication credentials value must "
 | 
					            errMsg = "HTTP NTLM authentication credentials value must "
 | 
				
			||||||
            errMsg += "be in format 'DOMAIN\username:password'"
 | 
					            errMsg += "be in format 'DOMAIN\\username:password'"
 | 
				
			||||||
        elif authType == AUTH_TYPE.PKI:
 | 
					        elif authType == AUTH_TYPE.PKI:
 | 
				
			||||||
            errMsg = "HTTP PKI authentication require "
 | 
					            errMsg = "HTTP PKI authentication require "
 | 
				
			||||||
            errMsg += "usage of option `--auth-pki`"
 | 
					            errMsg += "usage of option `--auth-pki`"
 | 
				
			||||||
| 
						 | 
					@ -2136,9 +2136,9 @@ def _setDNSServer():
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            conf.dnsServer = DNSServer()
 | 
					            conf.dnsServer = DNSServer()
 | 
				
			||||||
            conf.dnsServer.run()
 | 
					            conf.dnsServer.run()
 | 
				
			||||||
        except socket.error, msg:
 | 
					        except socket.error as ex:
 | 
				
			||||||
            errMsg = "there was an error while setting up "
 | 
					            errMsg = "there was an error while setting up "
 | 
				
			||||||
            errMsg += "DNS server instance ('%s')" % msg
 | 
					            errMsg += "DNS server instance ('%s')" % getSafeExString(ex)
 | 
				
			||||||
            raise SqlmapGenericException(errMsg)
 | 
					            raise SqlmapGenericException(errMsg)
 | 
				
			||||||
    else:
 | 
					    else:
 | 
				
			||||||
        errMsg = "you need to run sqlmap as an administrator "
 | 
					        errMsg = "you need to run sqlmap as an administrator "
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,6 +9,7 @@ import codecs
 | 
				
			||||||
import os
 | 
					import os
 | 
				
			||||||
import cProfile
 | 
					import cProfile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from lib.core.common import getSafeExString
 | 
				
			||||||
from lib.core.common import getUnicode
 | 
					from lib.core.common import getUnicode
 | 
				
			||||||
from lib.core.data import logger
 | 
					from lib.core.data import logger
 | 
				
			||||||
from lib.core.data import paths
 | 
					from lib.core.data import paths
 | 
				
			||||||
| 
						 | 
					@ -25,8 +26,8 @@ def profile(profileOutputFile=None, dotOutputFile=None, imageOutputFile=None):
 | 
				
			||||||
        from thirdparty.xdot import xdot
 | 
					        from thirdparty.xdot import xdot
 | 
				
			||||||
        import gtk
 | 
					        import gtk
 | 
				
			||||||
        import pydot
 | 
					        import pydot
 | 
				
			||||||
    except ImportError, e:
 | 
					    except ImportError as ex:
 | 
				
			||||||
        errMsg = "profiling requires third-party libraries ('%s') " % getUnicode(e, UNICODE_ENCODING)
 | 
					        errMsg = "profiling requires third-party libraries ('%s') " % getSafeExString(ex)
 | 
				
			||||||
        errMsg += "(Hint: 'sudo apt-get install python-pydot python-pyparsing python-profiler graphviz')"
 | 
					        errMsg += "(Hint: 'sudo apt-get install python-pydot python-pyparsing python-profiler graphviz')"
 | 
				
			||||||
        logger.error(errMsg)
 | 
					        logger.error(errMsg)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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.62"
 | 
					VERSION = "1.3.1.63"
 | 
				
			||||||
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)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,6 +9,7 @@ import atexit
 | 
				
			||||||
import os
 | 
					import os
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from lib.core import readlineng as readline
 | 
					from lib.core import readlineng as readline
 | 
				
			||||||
 | 
					from lib.core.common import getSafeExString
 | 
				
			||||||
from lib.core.data import logger
 | 
					from lib.core.data import logger
 | 
				
			||||||
from lib.core.data import paths
 | 
					from lib.core.data import paths
 | 
				
			||||||
from lib.core.enums import AUTOCOMPLETE_TYPE
 | 
					from lib.core.enums import AUTOCOMPLETE_TYPE
 | 
				
			||||||
| 
						 | 
					@ -75,8 +76,8 @@ def saveHistory(completion=None):
 | 
				
			||||||
        readline.set_history_length(MAX_HISTORY_LENGTH)
 | 
					        readline.set_history_length(MAX_HISTORY_LENGTH)
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            readline.write_history_file(historyPath)
 | 
					            readline.write_history_file(historyPath)
 | 
				
			||||||
        except IOError, msg:
 | 
					        except IOError as ex:
 | 
				
			||||||
            warnMsg = "there was a problem writing the history file '%s' (%s)" % (historyPath, msg)
 | 
					            warnMsg = "there was a problem writing the history file '%s' (%s)" % (historyPath, getSafeExString(ex))
 | 
				
			||||||
            logger.warn(warnMsg)
 | 
					            logger.warn(warnMsg)
 | 
				
			||||||
    except KeyboardInterrupt:
 | 
					    except KeyboardInterrupt:
 | 
				
			||||||
        pass
 | 
					        pass
 | 
				
			||||||
| 
						 | 
					@ -99,8 +100,8 @@ def loadHistory(completion=None):
 | 
				
			||||||
    if os.path.exists(historyPath):
 | 
					    if os.path.exists(historyPath):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            readline.read_history_file(historyPath)
 | 
					            readline.read_history_file(historyPath)
 | 
				
			||||||
        except IOError, msg:
 | 
					        except IOError as ex:
 | 
				
			||||||
            warnMsg = "there was a problem loading the history file '%s' (%s)" % (historyPath, msg)
 | 
					            warnMsg = "there was a problem loading the history file '%s' (%s)" % (historyPath, getSafeExString(ex))
 | 
				
			||||||
            logger.warn(warnMsg)
 | 
					            logger.warn(warnMsg)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def autoCompletion(completion=None, os=None, commands=None):
 | 
					def autoCompletion(completion=None, os=None, commands=None):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,7 +31,7 @@ def blockingReadFromFD(fd):
 | 
				
			||||||
    while True:
 | 
					    while True:
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            output += os.read(fd, 8192)
 | 
					            output += os.read(fd, 8192)
 | 
				
			||||||
        except (OSError, IOError), ioe:
 | 
					        except (OSError, IOError) as ioe:
 | 
				
			||||||
            if ioe.args[0] in (errno.EAGAIN, errno.EINTR):
 | 
					            if ioe.args[0] in (errno.EAGAIN, errno.EINTR):
 | 
				
			||||||
                # Uncomment the following line if the process seems to
 | 
					                # Uncomment the following line if the process seems to
 | 
				
			||||||
                # take a huge amount of cpu time
 | 
					                # take a huge amount of cpu time
 | 
				
			||||||
| 
						 | 
					@ -52,7 +52,7 @@ def blockingWriteToFD(fd, data):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            data_length = len(data)
 | 
					            data_length = len(data)
 | 
				
			||||||
            wrote_data = os.write(fd, data)
 | 
					            wrote_data = os.write(fd, data)
 | 
				
			||||||
        except (OSError, IOError), io:
 | 
					        except (OSError, IOError) as io:
 | 
				
			||||||
            if io.errno in (errno.EAGAIN, errno.EINTR):
 | 
					            if io.errno in (errno.EAGAIN, errno.EINTR):
 | 
				
			||||||
                continue
 | 
					                continue
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
| 
						 | 
					@ -95,8 +95,8 @@ class Popen(subprocess.Popen):
 | 
				
			||||||
                (errCode, written) = WriteFile(x, input)
 | 
					                (errCode, written) = WriteFile(x, input)
 | 
				
			||||||
            except ValueError:
 | 
					            except ValueError:
 | 
				
			||||||
                return self._close('stdin')
 | 
					                return self._close('stdin')
 | 
				
			||||||
            except (subprocess.pywintypes.error, Exception), why:
 | 
					            except (subprocess.pywintypes.error, Exception) as ex:
 | 
				
			||||||
                if why[0] in (109, errno.ESHUTDOWN):
 | 
					                if ex[0] in (109, errno.ESHUTDOWN):
 | 
				
			||||||
                    return self._close('stdin')
 | 
					                    return self._close('stdin')
 | 
				
			||||||
                raise
 | 
					                raise
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -116,8 +116,8 @@ class Popen(subprocess.Popen):
 | 
				
			||||||
                    (errCode, read) = ReadFile(x, nAvail, None)
 | 
					                    (errCode, read) = ReadFile(x, nAvail, None)
 | 
				
			||||||
            except (ValueError, NameError):
 | 
					            except (ValueError, NameError):
 | 
				
			||||||
                return self._close(which)
 | 
					                return self._close(which)
 | 
				
			||||||
            except (subprocess.pywintypes.error, Exception), why:
 | 
					            except (subprocess.pywintypes.error, Exception) as ex:
 | 
				
			||||||
                if why[0] in (109, errno.ESHUTDOWN):
 | 
					                if ex[0] in (109, errno.ESHUTDOWN):
 | 
				
			||||||
                    return self._close(which)
 | 
					                    return self._close(which)
 | 
				
			||||||
                raise
 | 
					                raise
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -134,8 +134,8 @@ class Popen(subprocess.Popen):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            try:
 | 
					            try:
 | 
				
			||||||
                written = os.write(self.stdin.fileno(), input)
 | 
					                written = os.write(self.stdin.fileno(), input)
 | 
				
			||||||
            except OSError, why:
 | 
					            except OSError as ex:
 | 
				
			||||||
                if why[0] == errno.EPIPE:  # broken pipe
 | 
					                if ex[0] == errno.EPIPE:  # broken pipe
 | 
				
			||||||
                    return self._close('stdin')
 | 
					                    return self._close('stdin')
 | 
				
			||||||
                raise
 | 
					                raise
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -427,8 +427,8 @@ def _setHashDB():
 | 
				
			||||||
            try:
 | 
					            try:
 | 
				
			||||||
                os.remove(conf.hashDBFile)
 | 
					                os.remove(conf.hashDBFile)
 | 
				
			||||||
                logger.info("flushing session file")
 | 
					                logger.info("flushing session file")
 | 
				
			||||||
            except OSError, msg:
 | 
					            except OSError as ex:
 | 
				
			||||||
                errMsg = "unable to flush the session file (%s)" % msg
 | 
					                errMsg = "unable to flush the session file ('%s')" % getSafeExString(ex)
 | 
				
			||||||
                raise SqlmapFilePathException(errMsg)
 | 
					                raise SqlmapFilePathException(errMsg)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    conf.hashDB = HashDB(conf.hashDBFile)
 | 
					    conf.hashDB = HashDB(conf.hashDBFile)
 | 
				
			||||||
| 
						 | 
					@ -566,7 +566,7 @@ def _setResultsFile():
 | 
				
			||||||
                conf.resultsFP = openFile(conf.resultsFilename, "w+", UNICODE_ENCODING, buffering=0)
 | 
					                conf.resultsFP = openFile(conf.resultsFilename, "w+", UNICODE_ENCODING, buffering=0)
 | 
				
			||||||
                warnMsg += "Using temporary file '%s' instead" % conf.resultsFilename
 | 
					                warnMsg += "Using temporary file '%s' instead" % conf.resultsFilename
 | 
				
			||||||
                logger.warn(warnMsg)
 | 
					                logger.warn(warnMsg)
 | 
				
			||||||
            except IOError, _:
 | 
					            except IOError as _:
 | 
				
			||||||
                errMsg = "unable to write to the temporary directory ('%s'). " % _
 | 
					                errMsg = "unable to write to the temporary directory ('%s'). " % _
 | 
				
			||||||
                errMsg += "Please make sure that your disk is not full and "
 | 
					                errMsg += "Please make sure that your disk is not full and "
 | 
				
			||||||
                errMsg += "that you have sufficient write permissions to "
 | 
					                errMsg += "that you have sufficient write permissions to "
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -897,8 +897,8 @@ def cmdLineParser(argv=None):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return args
 | 
					        return args
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    except (OptionError, TypeError), e:
 | 
					    except (OptionError, TypeError) as ex:
 | 
				
			||||||
        parser.error(e)
 | 
					        parser.error(ex)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    except SystemExit:
 | 
					    except SystemExit:
 | 
				
			||||||
        # Protection against Windows dummy double clicking
 | 
					        # Protection against Windows dummy double clicking
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -141,8 +141,8 @@ class SmartRedirectHandler(urllib2.HTTPRedirectHandler):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            try:
 | 
					            try:
 | 
				
			||||||
                result = urllib2.HTTPRedirectHandler.http_error_302(self, req, fp, code, msg, headers)
 | 
					                result = urllib2.HTTPRedirectHandler.http_error_302(self, req, fp, code, msg, headers)
 | 
				
			||||||
            except urllib2.HTTPError, e:
 | 
					            except urllib2.HTTPError as ex:
 | 
				
			||||||
                result = e
 | 
					                result = ex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                # Dirty hack for http://bugs.python.org/issue15701
 | 
					                # Dirty hack for http://bugs.python.org/issue15701
 | 
				
			||||||
                try:
 | 
					                try:
 | 
				
			||||||
| 
						 | 
					@ -154,7 +154,7 @@ class SmartRedirectHandler(urllib2.HTTPRedirectHandler):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if not hasattr(result, "read"):
 | 
					                if not hasattr(result, "read"):
 | 
				
			||||||
                    def _(self, length=None):
 | 
					                    def _(self, length=None):
 | 
				
			||||||
                        return e.msg
 | 
					                        return ex.msg
 | 
				
			||||||
                    result.read = types.MethodType(_, result)
 | 
					                    result.read = types.MethodType(_, result)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if not getattr(result, "url", None):
 | 
					                if not getattr(result, "url", None):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -88,12 +88,12 @@ def _search(dork):
 | 
				
			||||||
            responseMsg += "%s\n%s\n" % (responseHeaders, page)
 | 
					            responseMsg += "%s\n%s\n" % (responseHeaders, page)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        logger.log(CUSTOM_LOGGING.TRAFFIC_IN, responseMsg)
 | 
					        logger.log(CUSTOM_LOGGING.TRAFFIC_IN, responseMsg)
 | 
				
			||||||
    except urllib2.HTTPError, e:
 | 
					    except urllib2.HTTPError as ex:
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            page = e.read()
 | 
					            page = ex.read()
 | 
				
			||||||
        except Exception as ex:
 | 
					        except Exception as _:
 | 
				
			||||||
            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(_)
 | 
				
			||||||
            logger.critical(warnMsg)
 | 
					            logger.critical(warnMsg)
 | 
				
			||||||
            return None
 | 
					            return None
 | 
				
			||||||
    except (urllib2.URLError, httplib.error, socket.error, socket.timeout, socks.ProxyError):
 | 
					    except (urllib2.URLError, httplib.error, socket.error, socket.timeout, socks.ProxyError):
 | 
				
			||||||
| 
						 | 
					@ -150,13 +150,13 @@ def _search(dork):
 | 
				
			||||||
                responseMsg += "%s\n%s\n" % (responseHeaders, page)
 | 
					                responseMsg += "%s\n%s\n" % (responseHeaders, page)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            logger.log(CUSTOM_LOGGING.TRAFFIC_IN, responseMsg)
 | 
					            logger.log(CUSTOM_LOGGING.TRAFFIC_IN, responseMsg)
 | 
				
			||||||
        except urllib2.HTTPError, e:
 | 
					        except urllib2.HTTPError as ex:
 | 
				
			||||||
            try:
 | 
					            try:
 | 
				
			||||||
                page = e.read()
 | 
					                page = ex.read()
 | 
				
			||||||
                page = decodePage(page, e.headers.get("Content-Encoding"), e.headers.get("Content-Type"))
 | 
					                page = decodePage(page, ex.headers.get("Content-Encoding"), ex.headers.get("Content-Type"))
 | 
				
			||||||
            except socket.timeout:
 | 
					            except socket.timeout:
 | 
				
			||||||
                warnMsg = "connection timed out while trying "
 | 
					                warnMsg = "connection timed out while trying "
 | 
				
			||||||
                warnMsg += "to get error page information (%d)" % e.code
 | 
					                warnMsg += "to get error page information (%d)" % ex.code
 | 
				
			||||||
                logger.critical(warnMsg)
 | 
					                logger.critical(warnMsg)
 | 
				
			||||||
                return None
 | 
					                return None
 | 
				
			||||||
        except:
 | 
					        except:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -43,8 +43,8 @@ class Connector(GenericConnector):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.connector = pyodbc.connect('Driver={Microsoft Access Driver (*.mdb)};Dbq=%s;Uid=Admin;Pwd=;' % self.db)
 | 
					            self.connector = pyodbc.connect('Driver={Microsoft Access Driver (*.mdb)};Dbq=%s;Uid=Admin;Pwd=;' % self.db)
 | 
				
			||||||
        except (pyodbc.Error, pyodbc.OperationalError), msg:
 | 
					        except (pyodbc.Error, pyodbc.OperationalError) as ex:
 | 
				
			||||||
            raise SqlmapConnectionException(getSafeExString(msg))
 | 
					            raise SqlmapConnectionException(getSafeExString(ex))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.initCursor()
 | 
					        self.initCursor()
 | 
				
			||||||
        self.printConnected()
 | 
					        self.printConnected()
 | 
				
			||||||
| 
						 | 
					@ -52,17 +52,17 @@ class Connector(GenericConnector):
 | 
				
			||||||
    def fetchall(self):
 | 
					    def fetchall(self):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            return self.cursor.fetchall()
 | 
					            return self.cursor.fetchall()
 | 
				
			||||||
        except pyodbc.ProgrammingError, msg:
 | 
					        except pyodbc.ProgrammingError as ex:
 | 
				
			||||||
            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(msg))
 | 
					            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(ex))
 | 
				
			||||||
            return None
 | 
					            return None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def execute(self, query):
 | 
					    def execute(self, query):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.cursor.execute(query)
 | 
					            self.cursor.execute(query)
 | 
				
			||||||
        except (pyodbc.OperationalError, pyodbc.ProgrammingError), msg:
 | 
					        except (pyodbc.OperationalError, pyodbc.ProgrammingError) as ex:
 | 
				
			||||||
            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(msg))
 | 
					            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(ex))
 | 
				
			||||||
        except pyodbc.Error, msg:
 | 
					        except pyodbc.Error as ex:
 | 
				
			||||||
            raise SqlmapConnectionException(getSafeExString(msg))
 | 
					            raise SqlmapConnectionException(getSafeExString(ex))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.connector.commit()
 | 
					        self.connector.commit()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -35,8 +35,8 @@ class Connector(GenericConnector):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            database = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=%s;HOSTNAME=%s;PORT=%s;PROTOCOL=TCPIP;" % (self.db, self.hostname, self.port)
 | 
					            database = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=%s;HOSTNAME=%s;PORT=%s;PROTOCOL=TCPIP;" % (self.db, self.hostname, self.port)
 | 
				
			||||||
            self.connector = ibm_db_dbi.connect(database, self.user, self.password)
 | 
					            self.connector = ibm_db_dbi.connect(database, self.user, self.password)
 | 
				
			||||||
        except ibm_db_dbi.OperationalError, msg:
 | 
					        except ibm_db_dbi.OperationalError as ex:
 | 
				
			||||||
            raise SqlmapConnectionException(msg)
 | 
					            raise SqlmapConnectionException(getSafeExString(ex))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.initCursor()
 | 
					        self.initCursor()
 | 
				
			||||||
        self.printConnected()
 | 
					        self.printConnected()
 | 
				
			||||||
| 
						 | 
					@ -44,17 +44,17 @@ class Connector(GenericConnector):
 | 
				
			||||||
    def fetchall(self):
 | 
					    def fetchall(self):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            return self.cursor.fetchall()
 | 
					            return self.cursor.fetchall()
 | 
				
			||||||
        except ibm_db_dbi.ProgrammingError, msg:
 | 
					        except ibm_db_dbi.ProgrammingError as ex:
 | 
				
			||||||
            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(msg))
 | 
					            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) '%s'" % getSafeExString(ex))
 | 
				
			||||||
            return None
 | 
					            return None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def execute(self, query):
 | 
					    def execute(self, query):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.cursor.execute(query)
 | 
					            self.cursor.execute(query)
 | 
				
			||||||
        except (ibm_db_dbi.OperationalError, ibm_db_dbi.ProgrammingError), msg:
 | 
					        except (ibm_db_dbi.OperationalError, ibm_db_dbi.ProgrammingError) as ex:
 | 
				
			||||||
            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(msg))
 | 
					            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) '%s'" % getSafeExString(ex))
 | 
				
			||||||
        except ibm_db_dbi.InternalError, msg:
 | 
					        except ibm_db_dbi.InternalError as ex:
 | 
				
			||||||
            raise SqlmapConnectionException(getSafeExString(msg))
 | 
					            raise SqlmapConnectionException(getSafeExString(ex))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.connector.commit()
 | 
					        self.connector.commit()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -35,8 +35,8 @@ class Connector(GenericConnector):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            database = "DATABASE=%s;HOSTNAME=%s;PORT=%s;PROTOCOL=TCPIP;" % (self.db, self.hostname, self.port)
 | 
					            database = "DATABASE=%s;HOSTNAME=%s;PORT=%s;PROTOCOL=TCPIP;" % (self.db, self.hostname, self.port)
 | 
				
			||||||
            self.connector = ibm_db_dbi.connect(database, self.user, self.password)
 | 
					            self.connector = ibm_db_dbi.connect(database, self.user, self.password)
 | 
				
			||||||
        except ibm_db_dbi.OperationalError, msg:
 | 
					        except ibm_db_dbi.OperationalError as ex:
 | 
				
			||||||
            raise SqlmapConnectionException(getSafeExString(msg))
 | 
					            raise SqlmapConnectionException(getSafeExString(ex))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.initCursor()
 | 
					        self.initCursor()
 | 
				
			||||||
        self.printConnected()
 | 
					        self.printConnected()
 | 
				
			||||||
| 
						 | 
					@ -44,17 +44,17 @@ class Connector(GenericConnector):
 | 
				
			||||||
    def fetchall(self):
 | 
					    def fetchall(self):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            return self.cursor.fetchall()
 | 
					            return self.cursor.fetchall()
 | 
				
			||||||
        except ibm_db_dbi.ProgrammingError, msg:
 | 
					        except ibm_db_dbi.ProgrammingError as ex:
 | 
				
			||||||
            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(msg))
 | 
					            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(ex))
 | 
				
			||||||
            return None
 | 
					            return None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def execute(self, query):
 | 
					    def execute(self, query):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.cursor.execute(query)
 | 
					            self.cursor.execute(query)
 | 
				
			||||||
        except (ibm_db_dbi.OperationalError, ibm_db_dbi.ProgrammingError), msg:
 | 
					        except (ibm_db_dbi.OperationalError, ibm_db_dbi.ProgrammingError) as ex:
 | 
				
			||||||
            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(msg))
 | 
					            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(ex))
 | 
				
			||||||
        except ibm_db_dbi.InternalError, msg:
 | 
					        except ibm_db_dbi.InternalError as ex:
 | 
				
			||||||
            raise SqlmapConnectionException(getSafeExString(msg))
 | 
					            raise SqlmapConnectionException(getSafeExString(ex))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.connector.commit()
 | 
					        self.connector.commit()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -13,6 +13,7 @@ except:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import logging
 | 
					import logging
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from lib.core.common import getSafeExString
 | 
				
			||||||
from lib.core.convert import utf8encode
 | 
					from lib.core.convert import utf8encode
 | 
				
			||||||
from lib.core.data import conf
 | 
					from lib.core.data import conf
 | 
				
			||||||
from lib.core.data import logger
 | 
					from lib.core.data import logger
 | 
				
			||||||
| 
						 | 
					@ -41,8 +42,8 @@ class Connector(GenericConnector):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.connector = pymssql.connect(host="%s:%d" % (self.hostname, self.port), user=self.user, password=self.password, database=self.db, login_timeout=conf.timeout, timeout=conf.timeout)
 | 
					            self.connector = pymssql.connect(host="%s:%d" % (self.hostname, self.port), user=self.user, password=self.password, database=self.db, login_timeout=conf.timeout, timeout=conf.timeout)
 | 
				
			||||||
        except (pymssql.Error, _mssql.MssqlDatabaseException), msg:
 | 
					        except (pymssql.Error, _mssql.MssqlDatabaseException) as ex:
 | 
				
			||||||
            raise SqlmapConnectionException(msg)
 | 
					            raise SqlmapConnectionException(getSafeExString(ex))
 | 
				
			||||||
        except ValueError:
 | 
					        except ValueError:
 | 
				
			||||||
            raise SqlmapConnectionException
 | 
					            raise SqlmapConnectionException
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -52,8 +53,8 @@ class Connector(GenericConnector):
 | 
				
			||||||
    def fetchall(self):
 | 
					    def fetchall(self):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            return self.cursor.fetchall()
 | 
					            return self.cursor.fetchall()
 | 
				
			||||||
        except (pymssql.Error, _mssql.MssqlDatabaseException), msg:
 | 
					        except (pymssql.Error, _mssql.MssqlDatabaseException) as ex:
 | 
				
			||||||
            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % str(msg).replace("\n", " "))
 | 
					            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) '%s'" % getSafeExString(ex).replace("\n", " "))
 | 
				
			||||||
            return None
 | 
					            return None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def execute(self, query):
 | 
					    def execute(self, query):
 | 
				
			||||||
| 
						 | 
					@ -62,10 +63,10 @@ class Connector(GenericConnector):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.cursor.execute(utf8encode(query))
 | 
					            self.cursor.execute(utf8encode(query))
 | 
				
			||||||
            retVal = True
 | 
					            retVal = True
 | 
				
			||||||
        except (pymssql.OperationalError, pymssql.ProgrammingError), msg:
 | 
					        except (pymssql.OperationalError, pymssql.ProgrammingError) as ex:
 | 
				
			||||||
            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % str(msg).replace("\n", " "))
 | 
					            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) '%s'" % getSafeExString(ex).replace("\n", " "))
 | 
				
			||||||
        except pymssql.InternalError, msg:
 | 
					        except pymssql.InternalError as ex:
 | 
				
			||||||
            raise SqlmapConnectionException(msg)
 | 
					            raise SqlmapConnectionException(getSafeExString(ex))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return retVal
 | 
					        return retVal
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -38,8 +38,8 @@ class Connector(GenericConnector):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.connector = pymysql.connect(host=self.hostname, user=self.user, passwd=self.password, db=self.db, port=self.port, connect_timeout=conf.timeout, use_unicode=True)
 | 
					            self.connector = pymysql.connect(host=self.hostname, user=self.user, passwd=self.password, db=self.db, port=self.port, connect_timeout=conf.timeout, use_unicode=True)
 | 
				
			||||||
        except (pymysql.OperationalError, pymysql.InternalError, pymysql.ProgrammingError, struct.error), msg:
 | 
					        except (pymysql.OperationalError, pymysql.InternalError, pymysql.ProgrammingError, struct.error) as ex:
 | 
				
			||||||
            raise SqlmapConnectionException(getSafeExString(msg))
 | 
					            raise SqlmapConnectionException(getSafeExString(ex))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.initCursor()
 | 
					        self.initCursor()
 | 
				
			||||||
        self.printConnected()
 | 
					        self.printConnected()
 | 
				
			||||||
| 
						 | 
					@ -47,8 +47,8 @@ class Connector(GenericConnector):
 | 
				
			||||||
    def fetchall(self):
 | 
					    def fetchall(self):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            return self.cursor.fetchall()
 | 
					            return self.cursor.fetchall()
 | 
				
			||||||
        except pymysql.ProgrammingError, msg:
 | 
					        except pymysql.ProgrammingError as ex:
 | 
				
			||||||
            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(msg))
 | 
					            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(ex))
 | 
				
			||||||
            return None
 | 
					            return None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def execute(self, query):
 | 
					    def execute(self, query):
 | 
				
			||||||
| 
						 | 
					@ -57,10 +57,10 @@ class Connector(GenericConnector):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.cursor.execute(query)
 | 
					            self.cursor.execute(query)
 | 
				
			||||||
            retVal = True
 | 
					            retVal = True
 | 
				
			||||||
        except (pymysql.OperationalError, pymysql.ProgrammingError), msg:
 | 
					        except (pymysql.OperationalError, pymysql.ProgrammingError) as ex:
 | 
				
			||||||
            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(msg))
 | 
					            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % getSafeExString(ex))
 | 
				
			||||||
        except pymysql.InternalError, msg:
 | 
					        except pymysql.InternalError as ex:
 | 
				
			||||||
            raise SqlmapConnectionException(getSafeExString(msg))
 | 
					            raise SqlmapConnectionException(getSafeExString(ex))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.connector.commit()
 | 
					        self.connector.commit()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,6 +14,7 @@ import logging
 | 
				
			||||||
import os
 | 
					import os
 | 
				
			||||||
import re
 | 
					import re
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from lib.core.common import getSafeExString
 | 
				
			||||||
from lib.core.convert import utf8encode
 | 
					from lib.core.convert import utf8encode
 | 
				
			||||||
from lib.core.data import conf
 | 
					from lib.core.data import conf
 | 
				
			||||||
from lib.core.data import logger
 | 
					from lib.core.data import logger
 | 
				
			||||||
| 
						 | 
					@ -44,16 +45,16 @@ class Connector(GenericConnector):
 | 
				
			||||||
            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) as 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 getSafeExString(ex):
 | 
				
			||||||
                msg = re.sub(r"DPI-\d+:\s+", "", str(ex))
 | 
					                msg = re.sub(r"DPI-\d+:\s+", "", getSafeExString(ex))
 | 
				
			||||||
                msg = re.sub(r': ("[^"]+")', r" (\g<1>)", msg)
 | 
					                msg = re.sub(r': ("[^"]+")', r" (\g<1>)", msg)
 | 
				
			||||||
                msg = re.sub(r". See (http[^ ]+)", r'. See "\g<1>"', msg)
 | 
					                msg = re.sub(r". See (http[^ ]+)", r'. See "\g<1>"', msg)
 | 
				
			||||||
                raise SqlmapConnectionException(msg)
 | 
					                raise SqlmapConnectionException(msg)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            try:
 | 
					            try:
 | 
				
			||||||
                self.connector = cx_Oracle.connect(dsn=self.__dsn, user=self.user, password=self.password)
 | 
					                self.connector = cx_Oracle.connect(dsn=self.__dsn, user=self.user, password=self.password)
 | 
				
			||||||
            except (cx_Oracle.OperationalError, cx_Oracle.DatabaseError, cx_Oracle.InterfaceError), msg:
 | 
					            except (cx_Oracle.OperationalError, cx_Oracle.DatabaseError, cx_Oracle.InterfaceError) as ex:
 | 
				
			||||||
                raise SqlmapConnectionException(msg)
 | 
					                raise SqlmapConnectionException(ex)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.initCursor()
 | 
					        self.initCursor()
 | 
				
			||||||
        self.printConnected()
 | 
					        self.printConnected()
 | 
				
			||||||
| 
						 | 
					@ -61,8 +62,8 @@ class Connector(GenericConnector):
 | 
				
			||||||
    def fetchall(self):
 | 
					    def fetchall(self):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            return self.cursor.fetchall()
 | 
					            return self.cursor.fetchall()
 | 
				
			||||||
        except cx_Oracle.InterfaceError, msg:
 | 
					        except cx_Oracle.InterfaceError as ex:
 | 
				
			||||||
            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % msg)
 | 
					            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) '%s'" % getSafeExString(ex))
 | 
				
			||||||
            return None
 | 
					            return None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def execute(self, query):
 | 
					    def execute(self, query):
 | 
				
			||||||
| 
						 | 
					@ -71,8 +72,8 @@ class Connector(GenericConnector):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.cursor.execute(utf8encode(query))
 | 
					            self.cursor.execute(utf8encode(query))
 | 
				
			||||||
            retVal = True
 | 
					            retVal = True
 | 
				
			||||||
        except cx_Oracle.DatabaseError, msg:
 | 
					        except cx_Oracle.DatabaseError as ex:
 | 
				
			||||||
            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % msg)
 | 
					            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) '%s'" % getSafeExString(ex))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.connector.commit()
 | 
					        self.connector.commit()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -13,6 +13,7 @@ try:
 | 
				
			||||||
except:
 | 
					except:
 | 
				
			||||||
    pass
 | 
					    pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from lib.core.common import getSafeExString
 | 
				
			||||||
from lib.core.data import logger
 | 
					from lib.core.data import logger
 | 
				
			||||||
from lib.core.exception import SqlmapConnectionException
 | 
					from lib.core.exception import SqlmapConnectionException
 | 
				
			||||||
from plugins.generic.connector import Connector as GenericConnector
 | 
					from plugins.generic.connector import Connector as GenericConnector
 | 
				
			||||||
| 
						 | 
					@ -36,8 +37,8 @@ class Connector(GenericConnector):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.connector = psycopg2.connect(host=self.hostname, user=self.user, password=self.password, database=self.db, port=self.port)
 | 
					            self.connector = psycopg2.connect(host=self.hostname, user=self.user, password=self.password, database=self.db, port=self.port)
 | 
				
			||||||
        except psycopg2.OperationalError, msg:
 | 
					        except psycopg2.OperationalError as ex:
 | 
				
			||||||
            raise SqlmapConnectionException(msg)
 | 
					            raise SqlmapConnectionException(getSafeExString(ex))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.connector.set_client_encoding('UNICODE')
 | 
					        self.connector.set_client_encoding('UNICODE')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -47,8 +48,8 @@ class Connector(GenericConnector):
 | 
				
			||||||
    def fetchall(self):
 | 
					    def fetchall(self):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            return self.cursor.fetchall()
 | 
					            return self.cursor.fetchall()
 | 
				
			||||||
        except psycopg2.ProgrammingError, msg:
 | 
					        except psycopg2.ProgrammingError as ex:
 | 
				
			||||||
            logger.warn(msg)
 | 
					            logger.warn(getSafeExString(ex))
 | 
				
			||||||
            return None
 | 
					            return None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def execute(self, query):
 | 
					    def execute(self, query):
 | 
				
			||||||
| 
						 | 
					@ -57,10 +58,10 @@ class Connector(GenericConnector):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.cursor.execute(query)
 | 
					            self.cursor.execute(query)
 | 
				
			||||||
            retVal = True
 | 
					            retVal = True
 | 
				
			||||||
        except (psycopg2.OperationalError, psycopg2.ProgrammingError), msg:
 | 
					        except (psycopg2.OperationalError, psycopg2.ProgrammingError) as ex:
 | 
				
			||||||
            logger.warn(("(remote) %s" % msg).strip())
 | 
					            logger.warn(("(remote) '%s'" % getSafeExString(ex)).strip())
 | 
				
			||||||
        except psycopg2.InternalError, msg:
 | 
					        except psycopg2.InternalError as ex:
 | 
				
			||||||
            raise SqlmapConnectionException(msg)
 | 
					            raise SqlmapConnectionException(getSafeExString(ex))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.connector.commit()
 | 
					        self.connector.commit()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -12,6 +12,7 @@ except:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import logging
 | 
					import logging
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from lib.core.common import getSafeExString
 | 
				
			||||||
from lib.core.convert import utf8encode
 | 
					from lib.core.convert import utf8encode
 | 
				
			||||||
from lib.core.data import conf
 | 
					from lib.core.data import conf
 | 
				
			||||||
from lib.core.data import logger
 | 
					from lib.core.data import logger
 | 
				
			||||||
| 
						 | 
					@ -45,7 +46,7 @@ class Connector(GenericConnector):
 | 
				
			||||||
            cursor.execute("SELECT * FROM sqlite_master")
 | 
					            cursor.execute("SELECT * FROM sqlite_master")
 | 
				
			||||||
            cursor.close()
 | 
					            cursor.close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        except (self.__sqlite.DatabaseError, self.__sqlite.OperationalError), msg:
 | 
					        except (self.__sqlite.DatabaseError, self.__sqlite.OperationalError):
 | 
				
			||||||
            warnMsg = "unable to connect using SQLite 3 library, trying with SQLite 2"
 | 
					            warnMsg = "unable to connect using SQLite 3 library, trying with SQLite 2"
 | 
				
			||||||
            logger.warn(warnMsg)
 | 
					            logger.warn(warnMsg)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -59,8 +60,8 @@ class Connector(GenericConnector):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                self.__sqlite = sqlite
 | 
					                self.__sqlite = sqlite
 | 
				
			||||||
                self.connector = self.__sqlite.connect(database=self.db, check_same_thread=False, timeout=conf.timeout)
 | 
					                self.connector = self.__sqlite.connect(database=self.db, check_same_thread=False, timeout=conf.timeout)
 | 
				
			||||||
            except (self.__sqlite.DatabaseError, self.__sqlite.OperationalError), msg:
 | 
					            except (self.__sqlite.DatabaseError, self.__sqlite.OperationalError) as ex:
 | 
				
			||||||
                raise SqlmapConnectionException(msg[0])
 | 
					                raise SqlmapConnectionException(getSafeExString(ex))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.initCursor()
 | 
					        self.initCursor()
 | 
				
			||||||
        self.printConnected()
 | 
					        self.printConnected()
 | 
				
			||||||
| 
						 | 
					@ -68,17 +69,17 @@ class Connector(GenericConnector):
 | 
				
			||||||
    def fetchall(self):
 | 
					    def fetchall(self):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            return self.cursor.fetchall()
 | 
					            return self.cursor.fetchall()
 | 
				
			||||||
        except self.__sqlite.OperationalError, msg:
 | 
					        except self.__sqlite.OperationalError as ex:
 | 
				
			||||||
            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % msg[0])
 | 
					            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) '%s'" % getSafeExString(ex))
 | 
				
			||||||
            return None
 | 
					            return None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def execute(self, query):
 | 
					    def execute(self, query):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.cursor.execute(utf8encode(query))
 | 
					            self.cursor.execute(utf8encode(query))
 | 
				
			||||||
        except self.__sqlite.OperationalError, msg:
 | 
					        except self.__sqlite.OperationalError as ex:
 | 
				
			||||||
            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % msg[0])
 | 
					            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) '%s'" % getSafeExString(ex))
 | 
				
			||||||
        except self.__sqlite.DatabaseError, msg:
 | 
					        except self.__sqlite.DatabaseError as ex:
 | 
				
			||||||
            raise SqlmapConnectionException(msg[0])
 | 
					            raise SqlmapConnectionException(getSafeExString(ex))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.connector.commit()
 | 
					        self.connector.commit()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -13,6 +13,7 @@ except:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import logging
 | 
					import logging
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from lib.core.common import getSafeExString
 | 
				
			||||||
from lib.core.convert import utf8encode
 | 
					from lib.core.convert import utf8encode
 | 
				
			||||||
from lib.core.data import conf
 | 
					from lib.core.data import conf
 | 
				
			||||||
from lib.core.data import logger
 | 
					from lib.core.data import logger
 | 
				
			||||||
| 
						 | 
					@ -41,8 +42,8 @@ class Connector(GenericConnector):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.connector = pymssql.connect(host="%s:%d" % (self.hostname, self.port), user=self.user, password=self.password, database=self.db, login_timeout=conf.timeout, timeout=conf.timeout)
 | 
					            self.connector = pymssql.connect(host="%s:%d" % (self.hostname, self.port), user=self.user, password=self.password, database=self.db, login_timeout=conf.timeout, timeout=conf.timeout)
 | 
				
			||||||
        except (pymssql.Error, _mssql.MssqlDatabaseException), msg:
 | 
					        except (pymssql.Error, _mssql.MssqlDatabaseException) as ex:
 | 
				
			||||||
            raise SqlmapConnectionException(msg)
 | 
					            raise SqlmapConnectionException(ex)
 | 
				
			||||||
        except ValueError:
 | 
					        except ValueError:
 | 
				
			||||||
            raise SqlmapConnectionException
 | 
					            raise SqlmapConnectionException
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -52,8 +53,8 @@ class Connector(GenericConnector):
 | 
				
			||||||
    def fetchall(self):
 | 
					    def fetchall(self):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            return self.cursor.fetchall()
 | 
					            return self.cursor.fetchall()
 | 
				
			||||||
        except (pymssql.Error, _mssql.MssqlDatabaseException), msg:
 | 
					        except (pymssql.Error, _mssql.MssqlDatabaseException) as ex:
 | 
				
			||||||
            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % str(msg).replace("\n", " "))
 | 
					            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) '%s'" % getSafeExString(ex).replace("\n", " "))
 | 
				
			||||||
            return None
 | 
					            return None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def execute(self, query):
 | 
					    def execute(self, query):
 | 
				
			||||||
| 
						 | 
					@ -62,10 +63,10 @@ class Connector(GenericConnector):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            self.cursor.execute(utf8encode(query))
 | 
					            self.cursor.execute(utf8encode(query))
 | 
				
			||||||
            retVal = True
 | 
					            retVal = True
 | 
				
			||||||
        except (pymssql.OperationalError, pymssql.ProgrammingError), msg:
 | 
					        except (pymssql.OperationalError, pymssql.ProgrammingError) as ex:
 | 
				
			||||||
            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) %s" % str(msg).replace("\n", " "))
 | 
					            logger.log(logging.WARN if conf.dbmsHandler else logging.DEBUG, "(remote) '%s'" % getSafeExString(ex).replace("\n", " "))
 | 
				
			||||||
        except pymssql.InternalError, msg:
 | 
					        except pymssql.InternalError as ex:
 | 
				
			||||||
            raise SqlmapConnectionException(msg)
 | 
					            raise SqlmapConnectionException(getSafeExString(ex))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return retVal
 | 
					        return retVal
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -21,7 +21,7 @@ a32e12410e0f86c1d035db6daae84680  extra/shutils/duplicates.py
 | 
				
			||||||
fb6be55d21a70765e35549af2484f762  extra/sqlharvest/__init__.py
 | 
					fb6be55d21a70765e35549af2484f762  extra/sqlharvest/__init__.py
 | 
				
			||||||
4f82e97b09cc530cb9a92472d0835cea  extra/sqlharvest/sqlharvest.py
 | 
					4f82e97b09cc530cb9a92472d0835cea  extra/sqlharvest/sqlharvest.py
 | 
				
			||||||
fb6be55d21a70765e35549af2484f762  extra/wafdetectify/__init__.py
 | 
					fb6be55d21a70765e35549af2484f762  extra/wafdetectify/__init__.py
 | 
				
			||||||
d62ae3224aca6a9496b35583db61412a  extra/wafdetectify/wafdetectify.py
 | 
					aec73042403993076f478da48066a79e  extra/wafdetectify/wafdetectify.py
 | 
				
			||||||
ec782b9cdb8d857a80b6ecf0f32db7f4  lib/controller/action.py
 | 
					ec782b9cdb8d857a80b6ecf0f32db7f4  lib/controller/action.py
 | 
				
			||||||
d099724a49c5fd6b0dca8c777e82604e  lib/controller/checks.py
 | 
					d099724a49c5fd6b0dca8c777e82604e  lib/controller/checks.py
 | 
				
			||||||
c4d559a98cfc62b401ef7e0bfab782f0  lib/controller/controller.py
 | 
					c4d559a98cfc62b401ef7e0bfab782f0  lib/controller/controller.py
 | 
				
			||||||
| 
						 | 
					@ -29,30 +29,30 @@ 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
 | 
				
			||||||
44ac129c1b3b6130b4f1bc7b93036278  lib/core/bigarray.py
 | 
					44ac129c1b3b6130b4f1bc7b93036278  lib/core/bigarray.py
 | 
				
			||||||
34906c544d5c1060eecb2277b2c218d3  lib/core/common.py
 | 
					981783b71439d82e84b47fb9b9a88164  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
 | 
				
			||||||
d9a9783b417a6c34f177272596904bdc  lib/core/dump.py
 | 
					fd5403505f76eee6829c06b9342e269c  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
 | 
				
			||||||
95f9836ad46146537cc16f918a002118  lib/core/option.py
 | 
					3c5c2c63e67b40ca8ae9b1ffa8d7f77d  lib/core/option.py
 | 
				
			||||||
fe370021c6bc99daf44b2bfc0d1effb3  lib/core/patch.py
 | 
					fe370021c6bc99daf44b2bfc0d1effb3  lib/core/patch.py
 | 
				
			||||||
0f1d79ada721cf6def611b21b03d68af  lib/core/profiling.py
 | 
					4cfda3735871cd59b213470a0bbc8c3a  lib/core/profiling.py
 | 
				
			||||||
5e2c16a8e2daee22dd545df13386e7a3  lib/core/readlineng.py
 | 
					5e2c16a8e2daee22dd545df13386e7a3  lib/core/readlineng.py
 | 
				
			||||||
7d8a22c582ad201f65b73225e4456170  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
 | 
				
			||||||
0013f0712973543735d356560295a047  lib/core/settings.py
 | 
					9adcbe4eb038933aa8f9ef13f288dde6  lib/core/settings.py
 | 
				
			||||||
a8a7501d1e6b21669b858a62e921d191  lib/core/shell.py
 | 
					4483b4a5b601d8f1c4281071dff21ecc  lib/core/shell.py
 | 
				
			||||||
5dc606fdf0afefd4b305169c21ab2612  lib/core/subprocessng.py
 | 
					10fd19b0716ed261e6d04f311f6f527c  lib/core/subprocessng.py
 | 
				
			||||||
072c08d834d01b33e5f39320dcf67a0d  lib/core/target.py
 | 
					9c7b5c6397fb3da33e7a4d7876d159c6  lib/core/target.py
 | 
				
			||||||
7857b24b7865ccb4a05283faa596974d  lib/core/testing.py
 | 
					7857b24b7865ccb4a05283faa596974d  lib/core/testing.py
 | 
				
			||||||
203d2082929b4ac5454605c8c7c800a9  lib/core/threads.py
 | 
					203d2082929b4ac5454605c8c7c800a9  lib/core/threads.py
 | 
				
			||||||
2c263c8610667fdc593c50a35ab20f57  lib/core/unescaper.py
 | 
					2c263c8610667fdc593c50a35ab20f57  lib/core/unescaper.py
 | 
				
			||||||
| 
						 | 
					@ -60,7 +60,7 @@ ff45c74515fecc95277f7b9ad945f17c  lib/core/update.py
 | 
				
			||||||
b40f4c20a38729bb4933b8221665f106  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
 | 
				
			||||||
f60469363c303b86255246e5a9604ba3  lib/parse/cmdline.py
 | 
					87a1d50411e74cd0afb2d1bed30f59d4  lib/parse/cmdline.py
 | 
				
			||||||
06ccbccb63255c8f1c35950a4c8a6f6b  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
 | 
				
			||||||
| 
						 | 
					@ -80,7 +80,7 @@ fb6be55d21a70765e35549af2484f762  lib/request/__init__.py
 | 
				
			||||||
52a067bd2fe91ea9395269a684380cbb  lib/request/methodrequest.py
 | 
					52a067bd2fe91ea9395269a684380cbb  lib/request/methodrequest.py
 | 
				
			||||||
ac482ec52227daf48f523827dd67078f  lib/request/pkihandler.py
 | 
					ac482ec52227daf48f523827dd67078f  lib/request/pkihandler.py
 | 
				
			||||||
16ff6e078819fe517b1fc0ae3cbc1aa8  lib/request/rangehandler.py
 | 
					16ff6e078819fe517b1fc0ae3cbc1aa8  lib/request/rangehandler.py
 | 
				
			||||||
db4dc98d03d1865cc6266a79cd5c81b7  lib/request/redirecthandler.py
 | 
					921db487a5879b219af1216d7eaccf74  lib/request/redirecthandler.py
 | 
				
			||||||
1e60edebdb3997055616d12f4a932375  lib/request/templates.py
 | 
					1e60edebdb3997055616d12f4a932375  lib/request/templates.py
 | 
				
			||||||
eafa28e4beb2b7492dfc8036033ac824  lib/takeover/abstraction.py
 | 
					eafa28e4beb2b7492dfc8036033ac824  lib/takeover/abstraction.py
 | 
				
			||||||
ac9efea51eba120b667b4b73536d7f1c  lib/takeover/icmpsh.py
 | 
					ac9efea51eba120b667b4b73536d7f1c  lib/takeover/icmpsh.py
 | 
				
			||||||
| 
						 | 
					@ -114,19 +114,19 @@ fb6be55d21a70765e35549af2484f762  lib/utils/__init__.py
 | 
				
			||||||
833b05c72c9fa60b0a25b0a26f8f31fb  lib/utils/pivotdumptable.py
 | 
					833b05c72c9fa60b0a25b0a26f8f31fb  lib/utils/pivotdumptable.py
 | 
				
			||||||
5a8902fd6fa94ea73cf44952f9ed5a57  lib/utils/progress.py
 | 
					5a8902fd6fa94ea73cf44952f9ed5a57  lib/utils/progress.py
 | 
				
			||||||
b79654e49850937ab2dc8e0d73625cab  lib/utils/purge.py
 | 
					b79654e49850937ab2dc8e0d73625cab  lib/utils/purge.py
 | 
				
			||||||
081765fc1b3ad8a63f72e9c0e02ff00e  lib/utils/search.py
 | 
					503637fbdabaad5bc7f87dfcfbea4dd3  lib/utils/search.py
 | 
				
			||||||
272a538a3d36186113191f4c543bb34b  lib/utils/sqlalchemy.py
 | 
					272a538a3d36186113191f4c543bb34b  lib/utils/sqlalchemy.py
 | 
				
			||||||
68f90f633d812ca428d2f15f016b2d96  lib/utils/timeout.py
 | 
					68f90f633d812ca428d2f15f016b2d96  lib/utils/timeout.py
 | 
				
			||||||
164f830baad3e13b226ee57d44d69dfa  lib/utils/versioncheck.py
 | 
					164f830baad3e13b226ee57d44d69dfa  lib/utils/versioncheck.py
 | 
				
			||||||
1e5d24f1c629476bdf43363d2c8d8397  lib/utils/xrange.py
 | 
					1e5d24f1c629476bdf43363d2c8d8397  lib/utils/xrange.py
 | 
				
			||||||
ab877805fe12bbcbb06b9eccfabdc4ed  plugins/dbms/access/connector.py
 | 
					b8656f4785d0945e68257107a171f945  plugins/dbms/access/connector.py
 | 
				
			||||||
b0e4f4aed8504f97d4044620d3a7d27d  plugins/dbms/access/enumeration.py
 | 
					b0e4f4aed8504f97d4044620d3a7d27d  plugins/dbms/access/enumeration.py
 | 
				
			||||||
58d664d680087596965f95b482157320  plugins/dbms/access/filesystem.py
 | 
					58d664d680087596965f95b482157320  plugins/dbms/access/filesystem.py
 | 
				
			||||||
50e2991ae3f0a1eaf49fd10dcd041d92  plugins/dbms/access/fingerprint.py
 | 
					50e2991ae3f0a1eaf49fd10dcd041d92  plugins/dbms/access/fingerprint.py
 | 
				
			||||||
bd8faded88ef80cde33b747d8181192d  plugins/dbms/access/__init__.py
 | 
					bd8faded88ef80cde33b747d8181192d  plugins/dbms/access/__init__.py
 | 
				
			||||||
f36a8b05ea1a25254e03dc3bd44b1261  plugins/dbms/access/syntax.py
 | 
					f36a8b05ea1a25254e03dc3bd44b1261  plugins/dbms/access/syntax.py
 | 
				
			||||||
1a4e639d2a946792401cf5367ef661a5  plugins/dbms/access/takeover.py
 | 
					1a4e639d2a946792401cf5367ef661a5  plugins/dbms/access/takeover.py
 | 
				
			||||||
b4bf4ef5189705945ca77424a7f42ee7  plugins/dbms/db2/connector.py
 | 
					8f30dffb6cc7738adb5e83c2c6efb30f  plugins/dbms/db2/connector.py
 | 
				
			||||||
0f2e682ced8f91b1ec8bdf08c925b5a4  plugins/dbms/db2/enumeration.py
 | 
					0f2e682ced8f91b1ec8bdf08c925b5a4  plugins/dbms/db2/enumeration.py
 | 
				
			||||||
1ac13df2e0f04f312f522e9d8c13b692  plugins/dbms/db2/filesystem.py
 | 
					1ac13df2e0f04f312f522e9d8c13b692  plugins/dbms/db2/filesystem.py
 | 
				
			||||||
e003fe19474305af522d8d6c6680db17  plugins/dbms/db2/fingerprint.py
 | 
					e003fe19474305af522d8d6c6680db17  plugins/dbms/db2/fingerprint.py
 | 
				
			||||||
| 
						 | 
					@ -154,7 +154,7 @@ e4366df5a32c32f33be348e880714999  plugins/dbms/hsqldb/filesystem.py
 | 
				
			||||||
5221fe018709e60663cae7c5d784ad60  plugins/dbms/hsqldb/__init__.py
 | 
					5221fe018709e60663cae7c5d784ad60  plugins/dbms/hsqldb/__init__.py
 | 
				
			||||||
5a1e5c46053ec1be5f536cec644949b5  plugins/dbms/hsqldb/syntax.py
 | 
					5a1e5c46053ec1be5f536cec644949b5  plugins/dbms/hsqldb/syntax.py
 | 
				
			||||||
e77d9be343fe7820a594d7b02f8d0b55  plugins/dbms/hsqldb/takeover.py
 | 
					e77d9be343fe7820a594d7b02f8d0b55  plugins/dbms/hsqldb/takeover.py
 | 
				
			||||||
e7293692829fbacb63cd9f353b719ea8  plugins/dbms/informix/connector.py
 | 
					f2bf868a83538168a3384904e2264419  plugins/dbms/informix/connector.py
 | 
				
			||||||
4af6786b459ddbb666c5c765bf2a1158  plugins/dbms/informix/enumeration.py
 | 
					4af6786b459ddbb666c5c765bf2a1158  plugins/dbms/informix/enumeration.py
 | 
				
			||||||
1ac13df2e0f04f312f522e9d8c13b692  plugins/dbms/informix/filesystem.py
 | 
					1ac13df2e0f04f312f522e9d8c13b692  plugins/dbms/informix/filesystem.py
 | 
				
			||||||
ed2bdb4eb574066521e88241a21f4bf7  plugins/dbms/informix/fingerprint.py
 | 
					ed2bdb4eb574066521e88241a21f4bf7  plugins/dbms/informix/fingerprint.py
 | 
				
			||||||
| 
						 | 
					@ -169,42 +169,42 @@ ea186b97a394b61d82ecf7ed22b0cff6  plugins/dbms/maxdb/enumeration.py
 | 
				
			||||||
8ad820fdfd2454363279eda7a9a08e6e  plugins/dbms/maxdb/__init__.py
 | 
					8ad820fdfd2454363279eda7a9a08e6e  plugins/dbms/maxdb/__init__.py
 | 
				
			||||||
8fe248263926639acf41db3179db13d0  plugins/dbms/maxdb/syntax.py
 | 
					8fe248263926639acf41db3179db13d0  plugins/dbms/maxdb/syntax.py
 | 
				
			||||||
479ce664674859d0e61c5221f9e835fd  plugins/dbms/maxdb/takeover.py
 | 
					479ce664674859d0e61c5221f9e835fd  plugins/dbms/maxdb/takeover.py
 | 
				
			||||||
1610a08c26895154287959193d8bd56f  plugins/dbms/mssqlserver/connector.py
 | 
					6ef95017815eb5d2d0f5645a6f5c7a79  plugins/dbms/mssqlserver/connector.py
 | 
				
			||||||
69bfc53a409e79511802f668439bf4be  plugins/dbms/mssqlserver/enumeration.py
 | 
					69bfc53a409e79511802f668439bf4be  plugins/dbms/mssqlserver/enumeration.py
 | 
				
			||||||
bb02bdf47c71ed93d28d20b98ea0f8c6  plugins/dbms/mssqlserver/filesystem.py
 | 
					bb02bdf47c71ed93d28d20b98ea0f8c6  plugins/dbms/mssqlserver/filesystem.py
 | 
				
			||||||
bcabbf98e72bf3c6e971b56d8da60261  plugins/dbms/mssqlserver/fingerprint.py
 | 
					bcabbf98e72bf3c6e971b56d8da60261  plugins/dbms/mssqlserver/fingerprint.py
 | 
				
			||||||
6bffd484ef47111dd8a6e46e127ab5c7  plugins/dbms/mssqlserver/__init__.py
 | 
					6bffd484ef47111dd8a6e46e127ab5c7  plugins/dbms/mssqlserver/__init__.py
 | 
				
			||||||
fae49b96d1422171b8f8c79f42aa56c9  plugins/dbms/mssqlserver/syntax.py
 | 
					fae49b96d1422171b8f8c79f42aa56c9  plugins/dbms/mssqlserver/syntax.py
 | 
				
			||||||
a5aa91bd7248d4f7ad508cf69f45696d  plugins/dbms/mssqlserver/takeover.py
 | 
					a5aa91bd7248d4f7ad508cf69f45696d  plugins/dbms/mssqlserver/takeover.py
 | 
				
			||||||
078a5399bd14d1416e2ae6fcd0445159  plugins/dbms/mysql/connector.py
 | 
					dbd6121fcc92249ee0c023ee28e30274  plugins/dbms/mysql/connector.py
 | 
				
			||||||
a94bde2f4dcf3a5f166302d07ea32907  plugins/dbms/mysql/enumeration.py
 | 
					a94bde2f4dcf3a5f166302d07ea32907  plugins/dbms/mysql/enumeration.py
 | 
				
			||||||
81c762ceba0892d0d6d78d70f513d20a  plugins/dbms/mysql/filesystem.py
 | 
					81c762ceba0892d0d6d78d70f513d20a  plugins/dbms/mysql/filesystem.py
 | 
				
			||||||
fd79ec2504b6bada7d2da233a549af53  plugins/dbms/mysql/fingerprint.py
 | 
					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
 | 
				
			||||||
6e6c992f7fff55a8aa79d14437c648e7  plugins/dbms/oracle/connector.py
 | 
					82ed71cf0e9283859b61c88325255eb2  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
 | 
				
			||||||
c7bb3f112aad2ea7ea92e036e9aab6a7  plugins/dbms/oracle/__init__.py
 | 
					c7bb3f112aad2ea7ea92e036e9aab6a7  plugins/dbms/oracle/__init__.py
 | 
				
			||||||
2676a1544b454f276c64f5147f03ce02  plugins/dbms/oracle/syntax.py
 | 
					2676a1544b454f276c64f5147f03ce02  plugins/dbms/oracle/syntax.py
 | 
				
			||||||
8da7c9ee0a0e692097757dfc2b5fefe0  plugins/dbms/oracle/takeover.py
 | 
					8da7c9ee0a0e692097757dfc2b5fefe0  plugins/dbms/oracle/takeover.py
 | 
				
			||||||
e5e202429e9eee431c9dd39737b4b95c  plugins/dbms/postgresql/connector.py
 | 
					393a17dc8cb982ebb27665ead6b84bf1  plugins/dbms/postgresql/connector.py
 | 
				
			||||||
86f0e0c9c4bc155c93277e879e3c3311  plugins/dbms/postgresql/enumeration.py
 | 
					86f0e0c9c4bc155c93277e879e3c3311  plugins/dbms/postgresql/enumeration.py
 | 
				
			||||||
d68b5a9d6e608f15fbe2c520613ece4a  plugins/dbms/postgresql/filesystem.py
 | 
					d68b5a9d6e608f15fbe2c520613ece4a  plugins/dbms/postgresql/filesystem.py
 | 
				
			||||||
2af014c49f103cb27bc547cc12641e2b  plugins/dbms/postgresql/fingerprint.py
 | 
					2af014c49f103cb27bc547cc12641e2b  plugins/dbms/postgresql/fingerprint.py
 | 
				
			||||||
fb018fd23dcebdb36dddd22ac92efa2c  plugins/dbms/postgresql/__init__.py
 | 
					fb018fd23dcebdb36dddd22ac92efa2c  plugins/dbms/postgresql/__init__.py
 | 
				
			||||||
290ea28e1215565d9d12ede3422a4dcf  plugins/dbms/postgresql/syntax.py
 | 
					290ea28e1215565d9d12ede3422a4dcf  plugins/dbms/postgresql/syntax.py
 | 
				
			||||||
339bc65824b5c946ec40a12cd0257df1  plugins/dbms/postgresql/takeover.py
 | 
					339bc65824b5c946ec40a12cd0257df1  plugins/dbms/postgresql/takeover.py
 | 
				
			||||||
d2391dfe74f053eb5f31b0efad3fdda0  plugins/dbms/sqlite/connector.py
 | 
					014968f7b28abe3ca8e533843a017453  plugins/dbms/sqlite/connector.py
 | 
				
			||||||
6a0784e3ce46b6aa23dde813c6bc177f  plugins/dbms/sqlite/enumeration.py
 | 
					6a0784e3ce46b6aa23dde813c6bc177f  plugins/dbms/sqlite/enumeration.py
 | 
				
			||||||
3c0adec05071fbe655a9c2c7afe52721  plugins/dbms/sqlite/filesystem.py
 | 
					3c0adec05071fbe655a9c2c7afe52721  plugins/dbms/sqlite/filesystem.py
 | 
				
			||||||
4d00b64bbfb2572a4a3a3330f255cc54  plugins/dbms/sqlite/fingerprint.py
 | 
					4d00b64bbfb2572a4a3a3330f255cc54  plugins/dbms/sqlite/fingerprint.py
 | 
				
			||||||
582165c3e31ec5bf919db015c2e9bb2b  plugins/dbms/sqlite/__init__.py
 | 
					582165c3e31ec5bf919db015c2e9bb2b  plugins/dbms/sqlite/__init__.py
 | 
				
			||||||
1ca5b1d7c64686827e80988933c397fa  plugins/dbms/sqlite/syntax.py
 | 
					1ca5b1d7c64686827e80988933c397fa  plugins/dbms/sqlite/syntax.py
 | 
				
			||||||
224835bf71e99bac6e50b689afac5122  plugins/dbms/sqlite/takeover.py
 | 
					224835bf71e99bac6e50b689afac5122  plugins/dbms/sqlite/takeover.py
 | 
				
			||||||
492e2ad85f1a3a0feb2f010cb6c84eb1  plugins/dbms/sybase/connector.py
 | 
					1f726d02ce4c709c0a3d327be947c72b  plugins/dbms/sybase/connector.py
 | 
				
			||||||
37a4e529dfb6bf3387c22e66cd9966f7  plugins/dbms/sybase/enumeration.py
 | 
					37a4e529dfb6bf3387c22e66cd9966f7  plugins/dbms/sybase/enumeration.py
 | 
				
			||||||
9f16fb52a70e5fb01876f1bc5f5ef532  plugins/dbms/sybase/filesystem.py
 | 
					9f16fb52a70e5fb01876f1bc5f5ef532  plugins/dbms/sybase/filesystem.py
 | 
				
			||||||
69c104c5a2ff3e2c88a41205bb96d812  plugins/dbms/sybase/fingerprint.py
 | 
					69c104c5a2ff3e2c88a41205bb96d812  plugins/dbms/sybase/fingerprint.py
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user