From 24a3a231599eb0c5e0ed0abdb0eec94b0732bba4 Mon Sep 17 00:00:00 2001 From: Bernardo Damele Date: Thu, 9 Jul 2009 11:05:24 +0000 Subject: [PATCH] Minor bug fix to --dbms, updated user's manual --- doc/README.html | 12 +++++++----- doc/README.pdf | Bin 355247 -> 352126 bytes doc/README.sgml | 12 +++++++----- lib/core/option.py | 8 ++++++-- lib/core/session.py | 29 +++++++++++++++++++---------- 5 files changed, 39 insertions(+), 22 deletions(-) diff --git a/doc/README.html b/doc/README.html index 43f0bd3b7..6a49569c2 100644 --- a/doc/README.html +++ b/doc/README.html @@ -1571,11 +1571,13 @@ At the moment the fully supported database management system are four:

-

It is possible to force the name if you already know it so that sqlmap -will skip the fingerprint with an exception for MySQL to only identify if -it is MySQL < 5.0 or MySQL >= 5.0. -To avoid also this check you can provide instead MySQL 4 or -MySQL 5.

+

It is possible to force the DBMS name if you already know it so that sqlmap +will skip the fingerprint with an exception for MySQL and Microsoft SQL +Server to only identify the version. +To avoid also this check you can provide instead MySQL VERSION or +Microsoft SQL Server VERSION where version is a valid version for +the DBMS, for instance 5.0 for MySQL and 2005 for +Microsoft SQL Server.

Example on a PostgreSQL 8.3.5 target:

diff --git a/doc/README.pdf b/doc/README.pdf index d3eaa478fadb5424c117359d0eebb68afc0c8f18..8f354e08042ff9b3314413fcc9d4cad4ae1b7f2d 100644 GIT binary patch delta 60860 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

)6P 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

qW3Xfq35c<3f85By<1V&Cz7 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 KDPN;P;Qs@ave2FY delta 63541 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

HLhcZV< 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 p|9|q?iw{41{

-It is possible to force the name if you already know it so that sqlmap -will skip the fingerprint with an exception for MySQL to only identify if -it is MySQL < 5.0 or MySQL >= 5.0. -To avoid also this check you can provide instead MySQL 4 or -MySQL 5. +It is possible to force the DBMS name if you already know it so that sqlmap +will skip the fingerprint with an exception for MySQL and Microsoft SQL +Server to only identify the version. +To avoid also this check you can provide instead MySQL VERSION or +Microsoft SQL Server VERSION where version is a valid version for +the DBMS, for instance 5.0 for MySQL and 2005 for +Microsoft SQL Server. Example on a PostgreSQL 8.3.5 target: diff --git a/lib/core/option.py b/lib/core/option.py index 599f0bfd5..1bac5e18f 100644 --- a/lib/core/option.py +++ b/lib/core/option.py @@ -55,6 +55,8 @@ from lib.core.exception import sqlmapUnsupportedDBMSException from lib.core.optiondict import optDict 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 IS_WIN from lib.core.settings import PLATFORM from lib.core.settings import SITE @@ -461,8 +463,10 @@ def __setDBMS(): logger.debug(debugMsg) conf.dbms = conf.dbms.lower() - firstRegExp = "(%s|%s)" % ("|".join([alias for alias in MSSQL_ALIASES]), - "|".join([alias for alias in MYSQL_ALIASES])) + 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])) dbmsRegExp = re.search("%s ([\d\.]+)" % firstRegExp, conf.dbms) if dbmsRegExp: diff --git a/lib/core/session.py b/lib/core/session.py index cae12d887..f461e996f 100644 --- a/lib/core/session.py +++ b/lib/core/session.py @@ -34,6 +34,8 @@ from lib.core.data import kb from lib.core.data import logger 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 def setString(): @@ -133,8 +135,10 @@ def setDbms(dbms): if condition: dataToSessionFile("[%s][%s][%s][DBMS][%s]\n" % (conf.url, kb.injPlace, conf.parameters[kb.injPlace], dbms)) - firstRegExp = "(%s|%s)" % ("|".join([alias for alias in MSSQL_ALIASES]), - "|".join([alias for alias in MYSQL_ALIASES])) + 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])) dbmsRegExp = re.search("^%s" % firstRegExp, dbms, re.I) if dbmsRegExp: @@ -368,20 +372,23 @@ def resumeConfKb(expression, url, value): logger.info(logMsg) elif expression == "DBMS" and url == conf.url: - dbms = value[:-1] + dbms = value[:-1] + dbms = dbms.lower() + dbmsVersion = None logMsg = "resuming back-end DBMS '%s' " % dbms logMsg += "from session file" logger.info(logMsg) - dbms = dbms.lower() - firstRegExp = "(%s|%s)" % ("|".join([alias for alias in MSSQL_ALIASES]), - "|".join([alias for alias in MYSQL_ALIASES])) + 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])) dbmsRegExp = re.search("%s ([\d\.]+)" % firstRegExp, dbms) if dbmsRegExp: - dbms = dbmsRegExp.group(1) - kb.dbmsVersion = [ dbmsRegExp.group(2) ] + dbms = dbmsRegExp.group(1) + dbmsVersion = [ dbmsRegExp.group(2) ] if conf.dbms and conf.dbms.lower() != dbms: message = "you provided '%s' as back-end DBMS, " % conf.dbms @@ -392,9 +399,11 @@ def resumeConfKb(expression, url, value): test = readInput(message, default="N") if not test or test[0] in ("n", "N"): - conf.dbms = dbms + conf.dbms = dbms + kb.dbmsVersion = dbmsVersion else: - conf.dbms = dbms + conf.dbms = dbms + kb.dbmsVersion = dbmsVersion elif expression == "OS" and url == conf.url: os = value[:-1]