done with implementation for retrieving table names via access system table(s)

This commit is contained in:
Miroslav Stampar 2011-02-09 10:50:38 +00:00
parent 5050a76b59
commit caf6220c53

View File

@ -721,22 +721,29 @@ class Enumeration:
return kb.data.cachedDbs return kb.data.cachedDbs
def getTables(self): def getTables(self, bruteForce=None):
bruteForce = False
self.forceDbmsEnum() self.forceDbmsEnum()
if Backend.getIdentifiedDbms() == DBMS.MYSQL and not kb.data.has_information_schema: if bruteForce is None:
errMsg = "information_schema not available, " if Backend.getIdentifiedDbms() == DBMS.MYSQL and not kb.data.has_information_schema:
errMsg += "back-end DBMS is MySQL < 5.0" errMsg = "information_schema not available, "
logger.error(errMsg) errMsg += "back-end DBMS is MySQL < 5.0"
bruteForce = True logger.error(errMsg)
bruteForce = True
elif Backend.getIdentifiedDbms() == DBMS.ACCESS: elif Backend.getIdentifiedDbms() == DBMS.ACCESS:
errMsg = "cannot retrieve table names, " try:
errMsg += "back-end DBMS is Access" tables = self.getTables(False)
logger.error(errMsg) except sqlmapNoneDataException:
bruteForce = True tables = None
if not tables:
errMsg = "cannot retrieve table names, "
errMsg += "back-end DBMS is Access"
logger.error(errMsg)
bruteForce = True
else:
return tables
if bruteForce: if bruteForce:
resumeAvailable = False resumeAvailable = False