diff --git a/lib/core/common.py b/lib/core/common.py index 34bbdbb38..e0e8005ab 100644 --- a/lib/core/common.py +++ b/lib/core/common.py @@ -1359,3 +1359,9 @@ def getCommonStart(strings=[]): count += 1 return retVal + +def getBruteUnicode(string): + retVal = unicode() + for char in string: + retVal += unichr(ord(char)) + return retVal diff --git a/plugins/dbms/mysql/connector.py b/plugins/dbms/mysql/connector.py index a0433e795..be04c978e 100644 --- a/plugins/dbms/mysql/connector.py +++ b/plugins/dbms/mysql/connector.py @@ -51,7 +51,7 @@ class Connector(GenericConnector): self.initConnection() try: - self.connector = MySQLdb.connect(host=self.hostname, user=self.user, passwd=self.password, db=self.db, port=self.port, connect_timeout=conf.timeout) + self.connector = MySQLdb.connect(host=self.hostname, user=self.user, passwd=self.password, db=self.db, port=self.port, connect_timeout=conf.timeout, use_unicode=True) except MySQLdb.OperationalError, msg: raise sqlmapConnectionException, msg[1] diff --git a/plugins/generic/enumeration.py b/plugins/generic/enumeration.py index f9424ad06..c66a2a2ea 100644 --- a/plugins/generic/enumeration.py +++ b/plugins/generic/enumeration.py @@ -440,7 +440,7 @@ class Enumeration: # In PostgreSQL we get 1 if the privilege is # True, 0 otherwise - if kb.dbms == "PostgreSQL" and str(privilege).isdigit(): + if kb.dbms == "PostgreSQL" and unicode(privilege).isdigit(): for position, pgsqlPriv in pgsqlPrivs: if count == position and int(privilege) == 1: privileges.add(pgsqlPriv) @@ -1058,7 +1058,7 @@ class Enumeration: else: colEntry = entry[index] - colEntryLen = len(str(colEntry)) + colEntryLen = len(unicode(colEntry)) maxLen = max(colLen, colEntryLen) if maxLen > kb.data.dumpedTable[column]["length"]: