Skip to content

Commit 342a543

Browse files
committed
Minor enhancement to be able to dump entries also on MySQL < 5.0 when DB name, table name and column(s) are provided
1 parent 2fcbb57 commit 342a543

File tree

1 file changed

+14
-14
lines changed

1 file changed

+14
-14
lines changed

plugins/generic/enumeration.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -784,11 +784,6 @@ def getColumns(self, onlyColNames=False):
784784

785785

786786
def dumpTable(self):
787-
if kb.dbms == "MySQL" and not self.has_information_schema:
788-
errMsg = "information_schema not available, "
789-
errMsg += "back-end DBMS is MySQL < 5.0"
790-
raise sqlmapUnsupportedFeatureException, errMsg
791-
792787
if not conf.tbl:
793788
errMsg = "missing table parameter"
794789
raise sqlmapMissingMandatoryOptionException, errMsg
@@ -804,27 +799,32 @@ def dumpTable(self):
804799

805800
rootQuery = queries[kb.dbms].dumpTable
806801

807-
logMsg = "fetching"
808-
if conf.col:
809-
colList = conf.col.split(",")
810-
colString = ", ".join(column for column in colList)
811-
logMsg += " columns '%s'" % colString
812-
logMsg += " entries for table '%s'" % conf.tbl
813-
logMsg += " on database '%s'" % conf.db
814-
logger.info(logMsg)
815-
816802
if conf.col:
817803
self.cachedColumns[conf.db] = {}
818804
self.cachedColumns[conf.db][conf.tbl] = {}
819805
for column in colList:
820806
self.cachedColumns[conf.db][conf.tbl][column] = None
821807
elif not self.cachedColumns:
808+
if kb.dbms == "MySQL" and not self.has_information_schema:
809+
errMsg = "information_schema not available, "
810+
errMsg += "back-end DBMS is MySQL < 5.0"
811+
raise sqlmapUnsupportedFeatureException, errMsg
812+
822813
self.cachedColumns = self.getColumns(onlyColNames=True)
823814

824815
colList = self.cachedColumns[conf.db][conf.tbl].keys()
825816
colList.sort(key=lambda x: x.lower())
826817
colString = ", ".join(column for column in colList)
827818

819+
logMsg = "fetching"
820+
if conf.col:
821+
colList = conf.col.split(",")
822+
colString = ", ".join(column for column in colList)
823+
logMsg += " columns '%s'" % colString
824+
logMsg += " entries for table '%s'" % conf.tbl
825+
logMsg += " on database '%s'" % conf.db
826+
logger.info(logMsg)
827+
828828
if conf.unionUse:
829829
if kb.dbms == "Oracle":
830830
query = rootQuery["inband"]["query"] % (colString, conf.tbl.upper())

0 commit comments

Comments
 (0)