diff --git a/lib/core/exception.py b/lib/core/exception.py index 562d75ecc..1fee7e89c 100644 --- a/lib/core/exception.py +++ b/lib/core/exception.py @@ -23,6 +23,9 @@ class SqlmapFilePathException(SqlmapBaseException): class SqlmapGenericException(SqlmapBaseException): pass +class SqlmapInstallationException(SqlmapBaseException): + pass + class SqlmapMissingDependence(SqlmapBaseException): pass diff --git a/lib/core/option.py b/lib/core/option.py index 13b5afdbd..c8af249a0 100644 --- a/lib/core/option.py +++ b/lib/core/option.py @@ -84,6 +84,7 @@ from lib.core.enums import WIZARD from lib.core.exception import SqlmapConnectionException from lib.core.exception import SqlmapFilePathException from lib.core.exception import SqlmapGenericException +from lib.core.exception import SqlmapInstallationException from lib.core.exception import SqlmapMissingDependence from lib.core.exception import SqlmapMissingMandatoryOptionException from lib.core.exception import SqlmapMissingPrivileges @@ -402,7 +403,13 @@ def _loadQueries(): return retVal tree = ElementTree() - tree.parse(paths.QUERIES_XML) + try: + tree.parse(paths.QUERIES_XML) + except Exception, ex: + errMsg = "something seems to be wrong with " + errMsg += "the file '%s' ('%s'). Please make " % (paths.QUERIES_XML, ex) + errMsg += "sure that you haven't made any changes to it" + raise SqlmapInstallationException, errMsg for node in tree.findall("*"): queries[node.attrib['value']] = iterate(node) diff --git a/lib/parse/payloads.py b/lib/parse/payloads.py index 489a23990..7a7e617b8 100644 --- a/lib/parse/payloads.py +++ b/lib/parse/payloads.py @@ -10,6 +10,7 @@ from xml.etree import ElementTree as et from lib.core.data import conf from lib.core.data import paths from lib.core.datatype import AttribDict +from lib.core.exception import SqlmapInstallationException def cleanupVals(text, tag): if tag in ("clause", "where"): @@ -67,6 +68,13 @@ def parseXmlNode(node): conf.tests.append(test) def loadPayloads(): - doc = et.parse(paths.PAYLOADS_XML) + try: + doc = et.parse(paths.PAYLOADS_XML) + except Exception, ex: + errMsg = "something seems to be wrong with " + errMsg += "the file '%s' ('%s'). Please make " % (paths.PAYLOADS_XML, ex) + errMsg += "sure that you haven't made any changes to it" + raise SqlmapInstallationException, errMsg + root = doc.getroot() parseXmlNode(root)