Skip to content

Commit a3e3387

Browse files
committed
fix for proper Firebird resume of version
1 parent eb33612 commit a3e3387

2 files changed

Lines changed: 19 additions & 19 deletions

File tree

lib/core/session.py

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,7 @@
2323
from lib.core.enums import PAYLOAD
2424
from lib.core.enums import PLACE
2525
from lib.core.settings import METADB_SUFFIX
26-
from lib.core.settings import MSSQL_ALIASES
27-
from lib.core.settings import MYSQL_ALIASES
28-
from lib.core.settings import PGSQL_ALIASES
29-
from lib.core.settings import ORACLE_ALIASES
26+
from lib.core.settings import SUPPORTED_DBMS
3027
from lib.core.settings import UNKNOWN_DBMS_VERSION
3128

3229
def safeFormatString(value):
@@ -79,7 +76,6 @@ def setDbms(dbms):
7976
base as fingerprint.
8077
@type dbms: C{str}
8178
"""
82-
8379
condition = (
8480
not kb.resumedQueries
8581
or ( kb.resumedQueries.has_key(conf.url) and
@@ -89,10 +85,7 @@ def setDbms(dbms):
8985
if condition:
9086
dataToSessionFile("[%s][%s][%s][DBMS][%s]\n" % (conf.url, kb.injection.place, safeFormatString(conf.parameters[kb.injection.place]), safeFormatString(dbms)))
9187

92-
firstRegExp = "(%s|%s|%s|%s)" % ("|".join([alias for alias in MSSQL_ALIASES]),
93-
"|".join([alias for alias in MYSQL_ALIASES]),
94-
"|".join([alias for alias in PGSQL_ALIASES]),
95-
"|".join([alias for alias in ORACLE_ALIASES]))
88+
firstRegExp = "(%s)" % ("|".join([alias for alias in SUPPORTED_DBMS]))
9689
dbmsRegExp = re.search("^%s" % firstRegExp, dbms, re.I)
9790

9891
if dbmsRegExp:
@@ -186,10 +179,7 @@ def resumeConfKb(expression, url, value):
186179
logMsg += "from session file"
187180
logger.info(logMsg)
188181

189-
firstRegExp = "(%s|%s|%s|%s)" % ("|".join([alias for alias in MSSQL_ALIASES]),
190-
"|".join([alias for alias in MYSQL_ALIASES]),
191-
"|".join([alias for alias in PGSQL_ALIASES]),
192-
"|".join([alias for alias in ORACLE_ALIASES]))
182+
firstRegExp = "(%s)" % ("|".join([alias for alias in SUPPORTED_DBMS]))
193183
dbmsRegExp = re.search("%s ([\d\.]+)" % firstRegExp, dbms)
194184

195185
if dbmsRegExp:

plugins/dbms/firebird/fingerprint.py

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
from lib.core.session import setDbms
2323
from lib.core.settings import FIREBIRD_ALIASES
2424
from lib.core.settings import METADB_SUFFIX
25+
from lib.core.settings import UNKNOWN_DBMS_VERSION
2526
from lib.request import inject
2627
from lib.request.connect import Connect as Request
2728

@@ -44,10 +45,11 @@ def getFingerprint(self):
4445
if dbmsOsFp:
4546
value += "%s\n" % dbmsOsFp
4647

47-
value += "back-end DBMS: "
48+
value += "back-end DBMS: "
49+
actVer = format.getDbms()
4850

4951
if not conf.extensiveFp:
50-
value += DBMS.FIREBIRD
52+
value += actVer
5153
return value
5254

5355
actVer = format.getDbms() + " (%s)" % (self.__dialectCheck())
@@ -106,13 +108,20 @@ def __dialectCheck(self):
106108
return retVal
107109

108110
def checkDbms(self):
109-
if not conf.extensiveFp and (backend.isDbmsWithin(FIREBIRD_ALIASES) or conf.dbms in FIREBIRD_ALIASES):
110-
setDbms(DBMS.FIREBIRD)
111+
if not conf.extensiveFp and (backend.isDbmsWithin(FIREBIRD_ALIASES) \
112+
or conf.dbms in FIREBIRD_ALIASES) and backend.getVersion() and \
113+
backend.getVersion() != UNKNOWN_DBMS_VERSION:
114+
v = backend.getVersion().replace(">", "")
115+
v = v.replace("=", "")
116+
v = v.replace(" ", "")
117+
118+
backend.setVersion(v)
119+
120+
setDbms("%s %s" % (DBMS.FIREBIRD, backend.getVersion()))
111121

112122
self.getBanner()
113123

114-
if not conf.extensiveFp:
115-
return True
124+
return True
116125

117126
logMsg = "testing %s" % DBMS.FIREBIRD
118127
logger.info(logMsg)
@@ -141,6 +150,7 @@ def checkDbms(self):
141150

142151
if version is not None:
143152
backend.setVersion(version)
153+
setDbms("%s %s" % (DBMS.FIREBIRD, version))
144154

145155
self.getBanner()
146156

0 commit comments

Comments
 (0)