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