diff --git a/lib/core/common.py b/lib/core/common.py index 32e4b1591..912165463 100644 --- a/lib/core/common.py +++ b/lib/core/common.py @@ -517,10 +517,9 @@ class Backend: # Comparison methods @staticmethod def isDbms(dbms): - if Backend.getDbms() is not None: - return Backend.getDbms() == aliasToDbmsEnum(dbms) - else: - return Backend.getIdentifiedDbms() == aliasToDbmsEnum(dbms) + if not kb.get("testMode") and all((Backend.getDbms(), Backend.getIdentifiedDbms())) and Backend.getDbms() != Backend.getIdentifiedDbms(): + singleTimeWarnMessage("identified ('%s') and fingerprinted ('%s') DBMSes differ. If you experience problems in enumeration phase please rerun with '--flush-session'" % (Backend.getIdentifiedDbms(), Backend.getDbms())) + return Backend.getIdentifiedDbms() == aliasToDbmsEnum(dbms) @staticmethod def isDbmsWithin(aliases): diff --git a/lib/core/settings.py b/lib/core/settings.py index 4829b48c3..c7df7e875 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.1.3.3" +VERSION = "1.1.3.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/plugins/dbms/access/fingerprint.py b/plugins/dbms/access/fingerprint.py index e60538671..a97ee4067 100644 --- a/plugins/dbms/access/fingerprint.py +++ b/plugins/dbms/access/fingerprint.py @@ -146,7 +146,7 @@ class Fingerprint(GenericFingerprint): return value def checkDbms(self): - if not conf.extensiveFp and (Backend.isDbmsWithin(ACCESS_ALIASES) or (conf.dbms or "").lower() in ACCESS_ALIASES): + if not conf.extensiveFp and Backend.isDbmsWithin(ACCESS_ALIASES): setDbms(DBMS.ACCESS) return True diff --git a/plugins/dbms/db2/fingerprint.py b/plugins/dbms/db2/fingerprint.py index b3be0735e..f8deb9a29 100644 --- a/plugins/dbms/db2/fingerprint.py +++ b/plugins/dbms/db2/fingerprint.py @@ -81,7 +81,7 @@ class Fingerprint(GenericFingerprint): return value def checkDbms(self): - if not conf.extensiveFp and (Backend.isDbmsWithin(DB2_ALIASES) or (conf.dbms or "").lower() in DB2_ALIASES): + if not conf.extensiveFp and Backend.isDbmsWithin(DB2_ALIASES): setDbms(DBMS.DB2) return True diff --git a/plugins/dbms/firebird/fingerprint.py b/plugins/dbms/firebird/fingerprint.py index 6ed7a3a63..b673d1c43 100644 --- a/plugins/dbms/firebird/fingerprint.py +++ b/plugins/dbms/firebird/fingerprint.py @@ -103,9 +103,7 @@ class Fingerprint(GenericFingerprint): return retVal def checkDbms(self): - if not conf.extensiveFp and (Backend.isDbmsWithin(FIREBIRD_ALIASES) \ - or (conf.dbms or "").lower() in FIREBIRD_ALIASES) and Backend.getVersion() and \ - Backend.getVersion() != UNKNOWN_DBMS_VERSION: + if not conf.extensiveFp and Backend.isDbmsWithin(FIREBIRD_ALIASES): setDbms("%s %s" % (DBMS.FIREBIRD, Backend.getVersion())) self.getBanner() diff --git a/plugins/dbms/hsqldb/fingerprint.py b/plugins/dbms/hsqldb/fingerprint.py index fa6bb857c..3c657ee87 100644 --- a/plugins/dbms/hsqldb/fingerprint.py +++ b/plugins/dbms/hsqldb/fingerprint.py @@ -80,9 +80,7 @@ class Fingerprint(GenericFingerprint): """ - if not conf.extensiveFp and (Backend.isDbmsWithin(HSQLDB_ALIASES) \ - or (conf.dbms or "").lower() in HSQLDB_ALIASES) and Backend.getVersion() and \ - Backend.getVersion() != UNKNOWN_DBMS_VERSION: + if not conf.extensiveFp and Backend.isDbmsWithin(HSQLDB_ALIASES): setDbms("%s %s" % (DBMS.HSQLDB, Backend.getVersion())) if Backend.isVersionGreaterOrEqualThan("1.7.2"): diff --git a/plugins/dbms/informix/fingerprint.py b/plugins/dbms/informix/fingerprint.py index 58938634f..062af85ba 100644 --- a/plugins/dbms/informix/fingerprint.py +++ b/plugins/dbms/informix/fingerprint.py @@ -56,7 +56,7 @@ class Fingerprint(GenericFingerprint): return value def checkDbms(self): - if not conf.extensiveFp and (Backend.isDbmsWithin(INFORMIX_ALIASES) or (conf.dbms or "").lower() in INFORMIX_ALIASES): + if not conf.extensiveFp and Backend.isDbmsWithin(INFORMIX_ALIASES): setDbms(DBMS.INFORMIX) self.getBanner() diff --git a/plugins/dbms/maxdb/fingerprint.py b/plugins/dbms/maxdb/fingerprint.py index 0d3cfdf57..6976be515 100644 --- a/plugins/dbms/maxdb/fingerprint.py +++ b/plugins/dbms/maxdb/fingerprint.py @@ -91,7 +91,7 @@ class Fingerprint(GenericFingerprint): return value def checkDbms(self): - if not conf.extensiveFp and (Backend.isDbmsWithin(MAXDB_ALIASES) or (conf.dbms or "").lower() in MAXDB_ALIASES): + if not conf.extensiveFp and Backend.isDbmsWithin(MAXDB_ALIASES): setDbms(DBMS.MAXDB) self.getBanner() diff --git a/plugins/dbms/mssqlserver/fingerprint.py b/plugins/dbms/mssqlserver/fingerprint.py index a28cee358..5ce6b10a8 100644 --- a/plugins/dbms/mssqlserver/fingerprint.py +++ b/plugins/dbms/mssqlserver/fingerprint.py @@ -65,9 +65,7 @@ class Fingerprint(GenericFingerprint): return value def checkDbms(self): - if not conf.extensiveFp and (Backend.isDbmsWithin(MSSQL_ALIASES) \ - or (conf.dbms or "").lower() in MSSQL_ALIASES) and Backend.getVersion() and \ - Backend.getVersion().isdigit(): + if not conf.extensiveFp and Backend.isDbmsWithin(MSSQL_ALIASES): setDbms("%s %s" % (DBMS.MSSQL, Backend.getVersion())) self.getBanner() diff --git a/plugins/dbms/mysql/fingerprint.py b/plugins/dbms/mysql/fingerprint.py index 51ac45a86..2da4ff36d 100644 --- a/plugins/dbms/mysql/fingerprint.py +++ b/plugins/dbms/mysql/fingerprint.py @@ -150,9 +150,7 @@ class Fingerprint(GenericFingerprint): * http://dev.mysql.com/doc/refman/6.0/en/news-6-0-x.html (manual has been withdrawn) """ - if not conf.extensiveFp and (Backend.isDbmsWithin(MYSQL_ALIASES) \ - or (conf.dbms or "").lower() in MYSQL_ALIASES) and Backend.getVersion() and \ - Backend.getVersion() != UNKNOWN_DBMS_VERSION: + if not conf.extensiveFp and Backend.isDbmsWithin(MYSQL_ALIASES): setDbms("%s %s" % (DBMS.MYSQL, Backend.getVersion())) if Backend.isVersionGreaterOrEqualThan("5"): diff --git a/plugins/dbms/oracle/fingerprint.py b/plugins/dbms/oracle/fingerprint.py index 0d6365329..fbcc7aae7 100644 --- a/plugins/dbms/oracle/fingerprint.py +++ b/plugins/dbms/oracle/fingerprint.py @@ -58,7 +58,7 @@ class Fingerprint(GenericFingerprint): return value def checkDbms(self): - if not conf.extensiveFp and (Backend.isDbmsWithin(ORACLE_ALIASES) or (conf.dbms or "").lower() in ORACLE_ALIASES): + if not conf.extensiveFp and Backend.isDbmsWithin(ORACLE_ALIASES): setDbms(DBMS.ORACLE) self.getBanner() diff --git a/plugins/dbms/postgresql/fingerprint.py b/plugins/dbms/postgresql/fingerprint.py index 0dd45aa16..c40ffbc0c 100644 --- a/plugins/dbms/postgresql/fingerprint.py +++ b/plugins/dbms/postgresql/fingerprint.py @@ -63,7 +63,7 @@ class Fingerprint(GenericFingerprint): * http://www.postgresql.org/docs/9.1/interactive/release.html (up to 9.1.3) """ - if not conf.extensiveFp and (Backend.isDbmsWithin(PGSQL_ALIASES) or (conf.dbms or "").lower() in PGSQL_ALIASES): + if not conf.extensiveFp and Backend.isDbmsWithin(PGSQL_ALIASES): setDbms(DBMS.PGSQL) self.getBanner() diff --git a/plugins/dbms/sqlite/fingerprint.py b/plugins/dbms/sqlite/fingerprint.py index d262fbe21..35b8eeb76 100644 --- a/plugins/dbms/sqlite/fingerprint.py +++ b/plugins/dbms/sqlite/fingerprint.py @@ -64,7 +64,7 @@ class Fingerprint(GenericFingerprint): * http://www.sqlite.org/cvstrac/wiki?p=LoadableExtensions """ - if not conf.extensiveFp and (Backend.isDbmsWithin(SQLITE_ALIASES) or (conf.dbms or "").lower() in SQLITE_ALIASES): + if not conf.extensiveFp and Backend.isDbmsWithin(SQLITE_ALIASES): setDbms(DBMS.SQLITE) self.getBanner() diff --git a/plugins/dbms/sybase/fingerprint.py b/plugins/dbms/sybase/fingerprint.py index cd9ff8cb7..919f64ce6 100644 --- a/plugins/dbms/sybase/fingerprint.py +++ b/plugins/dbms/sybase/fingerprint.py @@ -58,9 +58,7 @@ class Fingerprint(GenericFingerprint): return value def checkDbms(self): - if not conf.extensiveFp and (Backend.isDbmsWithin(SYBASE_ALIASES) \ - or (conf.dbms or "").lower() in SYBASE_ALIASES) and Backend.getVersion() and \ - Backend.getVersion().isdigit(): + if not conf.extensiveFp and Backend.isDbmsWithin(SYBASE_ALIASES): setDbms("%s %s" % (DBMS.SYBASE, Backend.getVersion())) self.getBanner() diff --git a/txt/checksum.md5 b/txt/checksum.md5 index cd3699687..04f298242 100644 --- a/txt/checksum.md5 +++ b/txt/checksum.md5 @@ -26,7 +26,7 @@ dc386321e8813788f155dc557a78be8d lib/controller/controller.py 310efc965c862cfbd7b0da5150a5ad36 lib/controller/__init__.py 19905ecb4437b94512cf21d5f1720091 lib/core/agent.py 6cc95a117fbd34ef31b9aa25520f0e31 lib/core/bigarray.py -7d9c202d105cc08d2c3785d0f2f45a20 lib/core/common.py +623cac235089d94276a190882a277e90 lib/core/common.py 5065a4242a8cccf72f91e22e1007ae63 lib/core/convert.py a8143dab9d3a27490f7d49b6b29ea530 lib/core/data.py 7936d78b1a7f1f008ff92bf2f88574ba lib/core/datatype.py @@ -45,7 +45,7 @@ a8143dab9d3a27490f7d49b6b29ea530 lib/core/data.py d8e9250f3775119df07e9070eddccd16 lib/core/replication.py 785f86e3f963fa3798f84286a4e83ff2 lib/core/revision.py 40c80b28b3a5819b737a5a17d4565ae9 lib/core/session.py -4e5e1afc5d5ec92b15f7b4ab1a408dd6 lib/core/settings.py +4a0a70820c9820b620b719868d2ef06a lib/core/settings.py d91291997d2bd2f6028aaf371bf1d3b6 lib/core/shell.py 2ad85c130cc5f2b3701ea85c2f6bbf20 lib/core/subprocessng.py afd0636d2e93c23f4f0a5c9b6023ea17 lib/core/target.py @@ -118,35 +118,35 @@ caeea96ec9c9d489f615f282259b32ca lib/utils/timeout.py b90aae84100a6c4c2bd5eeb4197fbc6e plugins/dbms/access/connector.py a71f7c8ffcb9b250cc785cad830e8980 plugins/dbms/access/enumeration.py 38a0c758d9b86915fce894b779e79e4d plugins/dbms/access/filesystem.py -818482929a68a270bc4331cf6c436d13 plugins/dbms/access/fingerprint.py +fe34217a0b79ac25e3af007dd46cd340 plugins/dbms/access/fingerprint.py 5a691580a59eca29bae2283b57682025 plugins/dbms/access/__init__.py c12f4f266830636462eac98e35ebb73e plugins/dbms/access/syntax.py 3fc75c350a30597962bc692c973eeeb3 plugins/dbms/access/takeover.py a763887d6e6e99c5a73d9cf450cd84fe plugins/dbms/db2/connector.py 9d54e01e1576a423159f0e47aeb2837a plugins/dbms/db2/enumeration.py 667e50aa06883f0f194bef335015d694 plugins/dbms/db2/filesystem.py -d82e641f156d7c0fe015510a2f593b16 plugins/dbms/db2/fingerprint.py +9c6ef13c056a256e4704b924af0d7cc6 plugins/dbms/db2/fingerprint.py 35ed6e262cf68d4ab2c6111dd5fb0414 plugins/dbms/db2/__init__.py ce8bc86383f2ade41e08f2dbee1844bf plugins/dbms/db2/syntax.py 744fb5044f2b9f9d5ebda6e3f08e3be7 plugins/dbms/db2/takeover.py b8dcd6e97166f58ee452e68c46bfe2c4 plugins/dbms/firebird/connector.py 147afe5f4a3d09548a8a1dbc954fe29e plugins/dbms/firebird/enumeration.py 4e421504f59861bf1ed1a89abda583d1 plugins/dbms/firebird/filesystem.py -fc6fdb1fb1be84db541995c87746efe1 plugins/dbms/firebird/fingerprint.py +bbd239cd27b35c2fbd29443f0af5d973 plugins/dbms/firebird/fingerprint.py f86ace7fcaea5ff3f9e86ab2dce052c5 plugins/dbms/firebird/__init__.py 04f7c2977ab5198c6f4aa6233b872ae0 plugins/dbms/firebird/syntax.py 1cb1ab93e4b8c97e81586acfe4d030a2 plugins/dbms/firebird/takeover.py 3a97bd07cce66bc812309341e7b54697 plugins/dbms/hsqldb/connector.py 015281fb8f96dbade0d2e30fc8da9c4c plugins/dbms/hsqldb/enumeration.py c0b14e62e1ecbb679569a1abb9cf1913 plugins/dbms/hsqldb/filesystem.py -205ec651547b3fef04afc9580ab35672 plugins/dbms/hsqldb/fingerprint.py +82304c5d7b06bb564dcdd8cda84dbeae plugins/dbms/hsqldb/fingerprint.py 0b18e3cf582b128cf9f16ee34ef85727 plugins/dbms/hsqldb/__init__.py 65e8f8edc9d18fe482deb474a29f83ff plugins/dbms/hsqldb/syntax.py 0a1584e2b01f33abe3ef91d99bafbd3f plugins/dbms/hsqldb/takeover.py f8eaeb71239369e6ceff47596439871b plugins/dbms/informix/connector.py 989e75a65503dd648a45258217ae3371 plugins/dbms/informix/enumeration.py 667e50aa06883f0f194bef335015d694 plugins/dbms/informix/filesystem.py -df241894bc46576590fae7809650aa58 plugins/dbms/informix/fingerprint.py +f06d263b2c9b52ea7a120593eb5806c4 plugins/dbms/informix/fingerprint.py 859d2ed1e0c1b8a1b92c8b2044e6afc5 plugins/dbms/informix/__init__.py 0aa8ec7b83435a1ecec19c5320728051 plugins/dbms/informix/syntax.py 744fb5044f2b9f9d5ebda6e3f08e3be7 plugins/dbms/informix/takeover.py @@ -154,49 +154,49 @@ df241894bc46576590fae7809650aa58 plugins/dbms/informix/fingerprint.py e50b624ff23c3e180d80e065deb1763f plugins/dbms/maxdb/connector.py cbd90f22ce862409fe392e65f0ea94ac plugins/dbms/maxdb/enumeration.py 815ea8e7b9bd714d73d9d6c454aff774 plugins/dbms/maxdb/filesystem.py -30ace2bbd22cf6152e4a7e9d8176bdc1 plugins/dbms/maxdb/fingerprint.py +017c723354eff28188773670d3837c01 plugins/dbms/maxdb/fingerprint.py c03001c1f70e76de39d26241dfcbd033 plugins/dbms/maxdb/__init__.py e6036f5b2e39aec37ba036a8cf0efd6f plugins/dbms/maxdb/syntax.py 0be362015605e26551e5d79cc83ed466 plugins/dbms/maxdb/takeover.py e3e78fab9b5eb97867699f0b20e59b62 plugins/dbms/mssqlserver/connector.py a7ed0510e47384eaf93164d53e2b6b36 plugins/dbms/mssqlserver/enumeration.py 8554437c437052c30237be170ba8ce3a plugins/dbms/mssqlserver/filesystem.py -4e4bb17dfb175b5f6485d7513e4c8fb1 plugins/dbms/mssqlserver/fingerprint.py +13cb15e8abfb05818e6f66c687b78664 plugins/dbms/mssqlserver/fingerprint.py 40bd890988f9acd3942255d687445371 plugins/dbms/mssqlserver/__init__.py 400ce654ff6bc57a40fb291322a18282 plugins/dbms/mssqlserver/syntax.py 20c669e084ea4d6b968a5834f7fec66c plugins/dbms/mssqlserver/takeover.py 48fb283a0dbf980495ca054f7b55783f plugins/dbms/mysql/connector.py 7fe94b803fa273baf479b76ce7a3fb51 plugins/dbms/mysql/enumeration.py 1bd5e659962e814b66a451b807de9110 plugins/dbms/mysql/filesystem.py -e9076fe684eb3fe037f945601c7017f0 plugins/dbms/mysql/fingerprint.py +63c3c3fe3f1d4bc8f639fe5fcdbebc3c plugins/dbms/mysql/fingerprint.py 42568a66a13a43ed46748290c503a652 plugins/dbms/mysql/__init__.py 96dfafcc4aecc1c574148ac05dbdb6da plugins/dbms/mysql/syntax.py 33b2dc28075ab560fd8a4dc898682a0d plugins/dbms/mysql/takeover.py ea4b9cd238075b79945bd2607810934a plugins/dbms/oracle/connector.py 3a08ef0037de6df9f9a92ec5b126d705 plugins/dbms/oracle/enumeration.py dc5962a1d4d69d4206b6c03e00e7f33d plugins/dbms/oracle/filesystem.py -d19215a6aee5d04d67ee67eb2cac9893 plugins/dbms/oracle/fingerprint.py +525381f48505095b14e567c1f59ca9c7 plugins/dbms/oracle/fingerprint.py 25a99a9dd7072b6b7346438599c78050 plugins/dbms/oracle/__init__.py 783d4795fac75f73a7cfba3cd9c3d01c plugins/dbms/oracle/syntax.py c05176f6efe66069756fb78dfa0ed3f6 plugins/dbms/oracle/takeover.py e087d54b9b2617a9f40be15a2bd478c2 plugins/dbms/postgresql/connector.py 8377c5ab3de500f9a495fcd9e2a75d3e plugins/dbms/postgresql/enumeration.py 48822058c620ffaa2acc599b4d39c667 plugins/dbms/postgresql/filesystem.py -1d514afa3106fa5fbd6fa2dd33970917 plugins/dbms/postgresql/fingerprint.py +c10df993e8b243ba3d6a94e8ae28a875 plugins/dbms/postgresql/fingerprint.py a3a4e82e9a68329c44762897c87acfec plugins/dbms/postgresql/__init__.py 76bde1ffb3040ae709156449a583e9ed plugins/dbms/postgresql/syntax.py 286f95526a6ce0b8ae9bff6fc3117af0 plugins/dbms/postgresql/takeover.py 719fdd12e360458e822950f245d67ad0 plugins/dbms/sqlite/connector.py 28b9d7d0614e52275a30b5a57fc76027 plugins/dbms/sqlite/enumeration.py 954e503cfc8dd1acf9fc50868f5dafb0 plugins/dbms/sqlite/filesystem.py -60febaa44bd2fe5919e80e3bd7f0c2dd plugins/dbms/sqlite/fingerprint.py +ee430d142fa8f9ee571578d0a0916679 plugins/dbms/sqlite/fingerprint.py 6b17cc8cc94a912a0a5cf15acbad5ba4 plugins/dbms/sqlite/__init__.py 4827722159a89652005f49265bb55c43 plugins/dbms/sqlite/syntax.py 02ab8ff465da9dd31ffe6a963c676180 plugins/dbms/sqlite/takeover.py e3e78fab9b5eb97867699f0b20e59b62 plugins/dbms/sybase/connector.py a7f4d3a194f52fbb4fb4488be41273b1 plugins/dbms/sybase/enumeration.py 62d772c7cd08275e3503304ba90c4e8a plugins/dbms/sybase/filesystem.py -9e3e9a1f8dd491a95e833155a4157662 plugins/dbms/sybase/fingerprint.py +deed74334b637767fc9de8f74b37647a plugins/dbms/sybase/fingerprint.py 45436a42c2bb8075e1482a950d993d55 plugins/dbms/sybase/__init__.py 89412a921c8c598c19d36762d5820f05 plugins/dbms/sybase/syntax.py 654cd5e69cf5e5c644bfa5d284e61206 plugins/dbms/sybase/takeover.py