From 52177065cab5d363e3952aadf0b1cc1865ad1ac4 Mon Sep 17 00:00:00 2001 From: Miroslav Stampar Date: Tue, 6 Dec 2016 15:43:09 +0100 Subject: [PATCH] Patch for an Issue #2297 --- lib/core/dicts.py | 6 +++--- lib/core/settings.py | 2 +- lib/utils/sqlalchemy.py | 8 ++++++++ txt/checksum.md5 | 6 +++--- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/lib/core/dicts.py b/lib/core/dicts.py index 933a82454..49db8df71 100644 --- a/lib/core/dicts.py +++ b/lib/core/dicts.py @@ -184,15 +184,15 @@ DB2_PRIVS = { DUMP_REPLACEMENTS = {" ": NULL, "": BLANK} DBMS_DICT = { - DBMS.MSSQL: (MSSQL_ALIASES, "python-pymssql", "http://pymssql.sourceforge.net/", "mssql+pymssql"), + DBMS.MSSQL: (MSSQL_ALIASES, "python-pymssql", "https://github.com/pymssql/pymssql", "mssql+pymssql"), DBMS.MYSQL: (MYSQL_ALIASES, "python-pymysql", "https://github.com/petehunt/PyMySQL/", "mysql"), DBMS.PGSQL: (PGSQL_ALIASES, "python-psycopg2", "http://initd.org/psycopg/", "postgresql"), DBMS.ORACLE: (ORACLE_ALIASES, "python cx_Oracle", "http://cx-oracle.sourceforge.net/", "oracle"), DBMS.SQLITE: (SQLITE_ALIASES, "python-sqlite", "http://packages.ubuntu.com/quantal/python-sqlite", "sqlite"), - DBMS.ACCESS: (ACCESS_ALIASES, "python-pyodbc", "http://pyodbc.googlecode.com/", "access"), + DBMS.ACCESS: (ACCESS_ALIASES, "python-pyodbc", "https://github.com/mkleehammer/pyodbc", "access"), DBMS.FIREBIRD: (FIREBIRD_ALIASES, "python-kinterbasdb", "http://kinterbasdb.sourceforge.net/", "firebird"), DBMS.MAXDB: (MAXDB_ALIASES, None, None, "maxdb"), - DBMS.SYBASE: (SYBASE_ALIASES, "python-pymssql", "http://pymssql.sourceforge.net/", "sybase"), + DBMS.SYBASE: (SYBASE_ALIASES, "python-pymssql", "https://github.com/pymssql/pymssql", "sybase"), DBMS.DB2: (DB2_ALIASES, "python ibm-db", "https://github.com/ibmdb/python-ibmdb", "ibm_db_sa"), DBMS.HSQLDB: (HSQLDB_ALIASES, "python jaydebeapi & python-jpype", "https://pypi.python.org/pypi/JayDeBeApi/ & http://jpype.sourceforge.net/", None), DBMS.INFORMIX: (INFORMIX_ALIASES, "python ibm-db", "https://github.com/ibmdb/python-ibmdb", "ibm_db_sa"), diff --git a/lib/core/settings.py b/lib/core/settings.py index f4cb83521..bdc56ded8 100755 --- a/lib/core/settings.py +++ b/lib/core/settings.py @@ -19,7 +19,7 @@ from lib.core.enums import DBMS_DIRECTORY_NAME from lib.core.enums import OS # sqlmap version (...) -VERSION = "1.0.12.3" +VERSION = "1.0.12.4" TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable" TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34} VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE) diff --git a/lib/utils/sqlalchemy.py b/lib/utils/sqlalchemy.py index c57476a20..4c809a803 100644 --- a/lib/utils/sqlalchemy.py +++ b/lib/utils/sqlalchemy.py @@ -9,6 +9,7 @@ import imp import logging import os import sys +import traceback import warnings _sqlalchemy = None @@ -56,6 +57,13 @@ class SQLAlchemy(GenericConnector): engine = _sqlalchemy.create_engine(conf.direct, connect_args={"check_same_thread": False} if self.dialect == "sqlite" else {}) self.connector = engine.connect() except (TypeError, ValueError): + if "_get_server_version_info" in traceback.format_exc(): + try: + import pymssql + if int(pymssql.__version__[0]) < 2: + raise SqlmapConnectionException("SQLAlchemy connection issue (obsolete version of pymssql ('%s') is causing problems)" % pymssql.__version__) + except ImportError: + pass raise except SqlmapFilePathException: raise diff --git a/txt/checksum.md5 b/txt/checksum.md5 index 82c5ca061..623c4ae9f 100644 --- a/txt/checksum.md5 +++ b/txt/checksum.md5 @@ -32,7 +32,7 @@ e77cca1cb063016f71f6e6bdebf4ec73 lib/core/data.py 1d042f0bc0557d3fd564ea5a46deb77e lib/core/datatype.py e4ca0fd47f20cf7ba6a5f5cbf980073c lib/core/decorators.py 67f206cf2658145992cc1d7020138325 lib/core/defaults.py -3b2c013b610c5ae3193ced4f19bf1931 lib/core/dicts.py +6e2eb57c90a30635ee3516978dd87f34 lib/core/dicts.py 1f98d3f57ce21d625fd67adb26cfd13c lib/core/dump.py b218e03ef7426fb0414881b05add1092 lib/core/enums.py e4aec2b11c1ad6039d0c3dbbfbc5eb1a lib/core/exception.py @@ -45,7 +45,7 @@ e60456db5380840a586654344003d4e6 lib/core/readlineng.py b3a62d41a5af6cd7fa733b6227febb0c lib/core/replication.py 99a2b496b9d5b546b335653ca801153f lib/core/revision.py 7c15dd2777af4dac2c89cab6df17462e lib/core/session.py -5d307c68feee4678c9919e5f170bcbbc lib/core/settings.py +d34080007880c423b3c0475faa263722 lib/core/settings.py 7af83e4f18cab6dff5e67840eb65be80 lib/core/shell.py 23657cd7d924e3c6d225719865855827 lib/core/subprocessng.py c3ace7874a536d801f308cf1fd03df99 lib/core/target.py @@ -111,7 +111,7 @@ f0bd8f810332027a5c2c60bd17455f90 lib/utils/pivotdumptable.py da08a0b58c08ff452c7d1da4857d6680 lib/utils/progress.py 4c8895fb543aa5ae81f2d066422613f0 lib/utils/purge.py cc9b0f68dd58a2576a5a454b7f5f6b9c lib/utils/search.py -173a8a0be065699a78bb3012da362403 lib/utils/sqlalchemy.py +f976d920f13dee6ebf3e247e43dc8375 lib/utils/sqlalchemy.py 93dc08ba9f732d378f02cf85eae89df2 lib/utils/timeout.py e6fa0e76367a77015da113811dfd9712 lib/utils/versioncheck.py adafdb28095ba2d03322fee2aae4548f lib/utils/xrange.py