update regarding common columns existance check

This commit is contained in:
Miroslav Stampar 2010-11-11 17:09:31 +00:00
parent 3b996c3ed8
commit be992b4471
2 changed files with 23 additions and 2 deletions

View File

@ -31,7 +31,7 @@ class Enumeration(GenericEnumeration):
def getCurrentDb(self):
warnMsg = "on Microsoft Access it is not possible to get name of the current database"
logger.warn(warnMsg)
def getPasswordHashes(self):
warnMsg = "on Microsoft Access it is not possible to enumerate the user password hashes"
logger.warn(warnMsg)

View File

@ -42,6 +42,7 @@ from lib.core.unescaper import unescaper
from lib.parse.banner import bannerParser
from lib.request import inject
from lib.request.connect import Connect as Request
from lib.techniques.brute.use import columnExists
from lib.techniques.brute.use import tableExists
from lib.techniques.error.test import errorTest
from lib.techniques.inband.union.test import unionTest
@ -847,10 +848,30 @@ class Enumeration:
return kb.data.cachedTables
def getColumns(self, onlyColNames=False):
bruteForce = False
if kb.dbms == DBMS.MYSQL and not kb.data.has_information_schema:
errMsg = "information_schema not available, "
errMsg += "back-end DBMS is MySQL < 5.0"
raise sqlmapUnsupportedFeatureException, errMsg
logger.error(errMsg)
bruteForce = True
elif kb.dbms == DBMS.ACCESS:
errMsg = "cannot retrieve column names, "
errMsg += "back-end DBMS is Access"
logger.error(errMsg)
bruteForce = True
if bruteForce:
message = "do you want to use common columns existance check? [Y/n/q]"
test = readInput(message, default="Y")
if test[0] in ("n", "N"):
return
elif test[0] in ("q", "Q"):
raise sqlmapUserQuitException
else:
return columnExists(paths.COMMON_COLUMNS)
if not conf.tbl:
errMsg = "missing table parameter"