diff --git a/lib/core/dump.py b/lib/core/dump.py index 4f85e8ad1..8ce184906 100644 --- a/lib/core/dump.py +++ b/lib/core/dump.py @@ -37,6 +37,8 @@ from lib.core.settings import TRIM_STDOUT_DUMP_SIZE from lib.core.settings import UNICODE_ENCODING from thirdparty.magic import magic +from extra.safe2bin.safe2bin import safechardecode + class Dump(object): """ This class defines methods used to parse and output the results @@ -478,13 +480,11 @@ class Dump(object): self._write("| %s%s" % (value, blank), newline=False, console=console) #if len(value) > 10 and r'\x' in value: - #mimetype = magic.from_buffer(value, mime=True) - #if mimetype.startswith("application") or mimetype.startswith("image"): - #with open("%s%s%s" % (dumpDbPath, os.sep, "%s-%d.bin" % (column, randomInt(8))), "wb") as f: - #from extra.safe2bin.safe2bin import safechardecode - #_ = _.encode(UNICODE_ENCODING) - #_ = safechardecode(value) - #f.write(_) + # mimetype = magic.from_buffer(value, mime=True) + # if mimetype.startswith("application") or mimetype.startswith("image"): + # with codecs.open("%s%s%s" % (dumpDbPath, os.sep, "%s-%d.bin" % (column, randomInt(8))), "wb", UNICODE_ENCODING) as f: + # _ = safechardecode(value) + # f.write(_) if conf.dumpFormat == DUMP_FORMAT.CSV: if field == fields: diff --git a/plugins/dbms/sybase/connector.py b/plugins/dbms/sybase/connector.py index b490eec72..203aa7053 100644 --- a/plugins/dbms/sybase/connector.py +++ b/plugins/dbms/sybase/connector.py @@ -51,24 +51,31 @@ class Connector(GenericConnector): try: return self.cursor.fetchall() except (pymssql.ProgrammingError, pymssql.OperationalError, _mssql.MssqlDatabaseException), msg: - 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" % str(msg).replace("\n", " ")) return None def execute(self, query): + retVal = False + try: self.cursor.execute(utf8encode(query)) + retVal = True except (pymssql.OperationalError, pymssql.ProgrammingError), msg: - 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" % str(msg).replace("\n", " ")) except pymssql.InternalError, msg: raise SqlmapConnectionException(msg) + return retVal + def select(self, query): - self.execute(query) - value = self.fetchall() + retVal = None - try: - self.connector.commit() - except pymssql.OperationalError: - pass + if self.execute(query): + retVal = self.fetchall() - return value + try: + self.connector.commit() + except pymssql.OperationalError: + pass + + return retVal diff --git a/sqlmap.py b/sqlmap.py old mode 100644 new mode 100755 diff --git a/sqlmapapi.py b/sqlmapapi.py old mode 100644 new mode 100755