mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2025-02-16 19:40:37 +03:00
fix for proper Firebird resume of version
This commit is contained in:
parent
eb33612736
commit
a3e3387113
|
@ -23,10 +23,7 @@ from lib.core.datatype import injectionDict
|
|||
from lib.core.enums import PAYLOAD
|
||||
from lib.core.enums import PLACE
|
||||
from lib.core.settings import METADB_SUFFIX
|
||||
from lib.core.settings import MSSQL_ALIASES
|
||||
from lib.core.settings import MYSQL_ALIASES
|
||||
from lib.core.settings import PGSQL_ALIASES
|
||||
from lib.core.settings import ORACLE_ALIASES
|
||||
from lib.core.settings import SUPPORTED_DBMS
|
||||
from lib.core.settings import UNKNOWN_DBMS_VERSION
|
||||
|
||||
def safeFormatString(value):
|
||||
|
@ -79,7 +76,6 @@ def setDbms(dbms):
|
|||
base as fingerprint.
|
||||
@type dbms: C{str}
|
||||
"""
|
||||
|
||||
condition = (
|
||||
not kb.resumedQueries
|
||||
or ( kb.resumedQueries.has_key(conf.url) and
|
||||
|
@ -89,10 +85,7 @@ def setDbms(dbms):
|
|||
if condition:
|
||||
dataToSessionFile("[%s][%s][%s][DBMS][%s]\n" % (conf.url, kb.injection.place, safeFormatString(conf.parameters[kb.injection.place]), safeFormatString(dbms)))
|
||||
|
||||
firstRegExp = "(%s|%s|%s|%s)" % ("|".join([alias for alias in MSSQL_ALIASES]),
|
||||
"|".join([alias for alias in MYSQL_ALIASES]),
|
||||
"|".join([alias for alias in PGSQL_ALIASES]),
|
||||
"|".join([alias for alias in ORACLE_ALIASES]))
|
||||
firstRegExp = "(%s)" % ("|".join([alias for alias in SUPPORTED_DBMS]))
|
||||
dbmsRegExp = re.search("^%s" % firstRegExp, dbms, re.I)
|
||||
|
||||
if dbmsRegExp:
|
||||
|
@ -186,10 +179,7 @@ def resumeConfKb(expression, url, value):
|
|||
logMsg += "from session file"
|
||||
logger.info(logMsg)
|
||||
|
||||
firstRegExp = "(%s|%s|%s|%s)" % ("|".join([alias for alias in MSSQL_ALIASES]),
|
||||
"|".join([alias for alias in MYSQL_ALIASES]),
|
||||
"|".join([alias for alias in PGSQL_ALIASES]),
|
||||
"|".join([alias for alias in ORACLE_ALIASES]))
|
||||
firstRegExp = "(%s)" % ("|".join([alias for alias in SUPPORTED_DBMS]))
|
||||
dbmsRegExp = re.search("%s ([\d\.]+)" % firstRegExp, dbms)
|
||||
|
||||
if dbmsRegExp:
|
||||
|
|
|
@ -22,6 +22,7 @@ from lib.core.enums import DBMS
|
|||
from lib.core.session import setDbms
|
||||
from lib.core.settings import FIREBIRD_ALIASES
|
||||
from lib.core.settings import METADB_SUFFIX
|
||||
from lib.core.settings import UNKNOWN_DBMS_VERSION
|
||||
from lib.request import inject
|
||||
from lib.request.connect import Connect as Request
|
||||
|
||||
|
@ -44,10 +45,11 @@ class Fingerprint(GenericFingerprint):
|
|||
if dbmsOsFp:
|
||||
value += "%s\n" % dbmsOsFp
|
||||
|
||||
value += "back-end DBMS: "
|
||||
value += "back-end DBMS: "
|
||||
actVer = format.getDbms()
|
||||
|
||||
if not conf.extensiveFp:
|
||||
value += DBMS.FIREBIRD
|
||||
value += actVer
|
||||
return value
|
||||
|
||||
actVer = format.getDbms() + " (%s)" % (self.__dialectCheck())
|
||||
|
@ -106,13 +108,20 @@ class Fingerprint(GenericFingerprint):
|
|||
return retVal
|
||||
|
||||
def checkDbms(self):
|
||||
if not conf.extensiveFp and (backend.isDbmsWithin(FIREBIRD_ALIASES) or conf.dbms in FIREBIRD_ALIASES):
|
||||
setDbms(DBMS.FIREBIRD)
|
||||
if not conf.extensiveFp and (backend.isDbmsWithin(FIREBIRD_ALIASES) \
|
||||
or conf.dbms in FIREBIRD_ALIASES) and backend.getVersion() and \
|
||||
backend.getVersion() != UNKNOWN_DBMS_VERSION:
|
||||
v = backend.getVersion().replace(">", "")
|
||||
v = v.replace("=", "")
|
||||
v = v.replace(" ", "")
|
||||
|
||||
backend.setVersion(v)
|
||||
|
||||
setDbms("%s %s" % (DBMS.FIREBIRD, backend.getVersion()))
|
||||
|
||||
self.getBanner()
|
||||
|
||||
if not conf.extensiveFp:
|
||||
return True
|
||||
return True
|
||||
|
||||
logMsg = "testing %s" % DBMS.FIREBIRD
|
||||
logger.info(logMsg)
|
||||
|
@ -141,6 +150,7 @@ class Fingerprint(GenericFingerprint):
|
|||
|
||||
if version is not None:
|
||||
backend.setVersion(version)
|
||||
setDbms("%s %s" % (DBMS.FIREBIRD, version))
|
||||
|
||||
self.getBanner()
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user