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,11 +721,10 @@ 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 bruteForce is None:
if Backend.getIdentifiedDbms() == DBMS.MYSQL and not kb.data.has_information_schema: if Backend.getIdentifiedDbms() == DBMS.MYSQL and not kb.data.has_information_schema:
errMsg = "information_schema not available, " errMsg = "information_schema not available, "
errMsg += "back-end DBMS is MySQL < 5.0" errMsg += "back-end DBMS is MySQL < 5.0"
@ -733,10 +732,18 @@ class Enumeration:
bruteForce = True bruteForce = True
elif Backend.getIdentifiedDbms() == DBMS.ACCESS: elif Backend.getIdentifiedDbms() == DBMS.ACCESS:
try:
tables = self.getTables(False)
except sqlmapNoneDataException:
tables = None
if not tables:
errMsg = "cannot retrieve table names, " errMsg = "cannot retrieve table names, "
errMsg += "back-end DBMS is Access" errMsg += "back-end DBMS is Access"
logger.error(errMsg) logger.error(errMsg)
bruteForce = True bruteForce = True
else:
return tables
if bruteForce: if bruteForce:
resumeAvailable = False resumeAvailable = False