added some nagging for connection details

This commit is contained in:
Miroslav Stampar 2010-04-13 11:00:15 +00:00
parent 4f299f22bf
commit da1ea48947

View File

@ -49,6 +49,7 @@ from lib.core.exception import sqlmapFilePathException
from lib.core.exception import sqlmapNoneDataException from lib.core.exception import sqlmapNoneDataException
from lib.core.exception import sqlmapMissingDependence from lib.core.exception import sqlmapMissingDependence
from lib.core.exception import sqlmapSyntaxException from lib.core.exception import sqlmapSyntaxException
from lib.core.exception import sqlmapUnsupportedFeatureException
from lib.core.settings import DESCRIPTION from lib.core.settings import DESCRIPTION
from lib.core.settings import IS_WIN from lib.core.settings import IS_WIN
from lib.core.settings import SITE from lib.core.settings import SITE
@ -604,6 +605,7 @@ def parseTargetDirect():
return return
details = None details = None
remote = False
for dbms in SUPPORTED_DBMS: for dbms in SUPPORTED_DBMS:
details = re.search("^(?P<dbms>%s)://(?P<credentials>(?P<user>.+?)\:(?P<pass>.+?)\@)?(?P<remote>(?P<hostname>.+?)\:(?P<port>[\d]+)\/)?(?P<db>[\w\d\.\_\-\/]+?)$" % dbms, conf.direct, re.I) details = re.search("^(?P<dbms>%s)://(?P<credentials>(?P<user>.+?)\:(?P<pass>.+?)\@)?(?P<remote>(?P<hostname>.+?)\:(?P<port>[\d]+)\/)?(?P<db>[\w\d\.\_\-\/]+?)$" % dbms, conf.direct, re.I)
@ -619,6 +621,7 @@ def parseTargetDirect():
conf.dbmsPass = str() conf.dbmsPass = str()
if details.group('remote'): if details.group('remote'):
remote = True
conf.hostname = details.group('hostname') conf.hostname = details.group('hostname')
conf.port = int(details.group('port')) conf.port = int(details.group('port'))
else: else:
@ -648,6 +651,15 @@ def parseTargetDirect():
for dbmsName, data in dbmsDict.items(): for dbmsName, data in dbmsDict.items():
if conf.dbms in data[0]: if conf.dbms in data[0]:
try: 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": if dbmsName == "Microsoft SQL Server":
import _mssql import _mssql
import pymssql import pymssql