From da1ea489472ff623461cc09f1e3a8d29118c1074 Mon Sep 17 00:00:00 2001 From: Miroslav Stampar Date: Tue, 13 Apr 2010 11:00:15 +0000 Subject: [PATCH] added some nagging for connection details --- lib/core/common.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/core/common.py b/lib/core/common.py index c8ca6597d..f8dc46639 100644 --- a/lib/core/common.py +++ b/lib/core/common.py @@ -49,6 +49,7 @@ from lib.core.exception import sqlmapFilePathException from lib.core.exception import sqlmapNoneDataException from lib.core.exception import sqlmapMissingDependence from lib.core.exception import sqlmapSyntaxException +from lib.core.exception import sqlmapUnsupportedFeatureException from lib.core.settings import DESCRIPTION from lib.core.settings import IS_WIN from lib.core.settings import SITE @@ -604,6 +605,7 @@ def parseTargetDirect(): return details = None + remote = False for dbms in SUPPORTED_DBMS: details = re.search("^(?P%s)://(?P(?P.+?)\:(?P.+?)\@)?(?P(?P.+?)\:(?P[\d]+)\/)?(?P[\w\d\.\_\-\/]+?)$" % dbms, conf.direct, re.I) @@ -619,6 +621,7 @@ def parseTargetDirect(): conf.dbmsPass = str() if details.group('remote'): + remote = True conf.hostname = details.group('hostname') conf.port = int(details.group('port')) else: @@ -648,6 +651,15 @@ def parseTargetDirect(): for dbmsName, data in dbmsDict.items(): if conf.dbms in data[0]: try: + if dbmsName in ('Access', 'SQLite'): + if remote: + errMsg = "direct connection over the network for %s DBMS is not supported" % dbmsName + raise sqlmapUnsupportedFeatureException, errMsg + else: + if not remote: + errMsg = "missing remote connection details" + raise sqlmapSyntaxException, errMsg + if dbmsName == "Microsoft SQL Server": import _mssql import pymssql