diff --git a/plugins/dbms/sqlite/enumeration.py b/plugins/dbms/sqlite/enumeration.py
index 0daf4c6a1..6b79d4b71 100644
--- a/plugins/dbms/sqlite/enumeration.py
+++ b/plugins/dbms/sqlite/enumeration.py
@@ -68,16 +68,6 @@ class Enumeration(GenericEnumeration):
return []
- def getColumns(self, onlyColNames=False):
- errMsg = "on SQLite it is not possible to enumerate database "
- errMsg += "table columns"
-
- if conf.dumpTable or conf.dumpAll:
- errMsg += ", provide them with -C option"
- raise sqlmapUnsupportedFeatureException, errMsg
-
- logger.warn(errMsg)
-
def dumpAll(self):
errMsg = "on SQLite you must specify the table and columns to dump"
raise sqlmapUnsupportedFeatureException, errMsg
diff --git a/plugins/generic/enumeration.py b/plugins/generic/enumeration.py
index 136e46041..1c385042c 100644
--- a/plugins/generic/enumeration.py
+++ b/plugins/generic/enumeration.py
@@ -871,15 +871,21 @@ class Enumeration:
conf.db, conf.db,
conf.db, conf.tbl)
query += condQuery.replace("[DB]", conf.db)
+ elif kb.dbms == "SQLite":
+ query = rootQuery["inband"]["query"] % conf.tbl
value = inject.getValue(query, blind=False)
if value:
table = {}
columns = {}
-
- for column, colType in value:
- columns[column] = colType
+
+ if kb.dbms == "SQLite":
+ for match in re.finditer(r"(\w+) ([A-Z]+)[,\r\n]", value):
+ columns[match.group(1)] = match.group(2)
+ else:
+ for column, colType in value:
+ columns[column] = colType
table[conf.tbl] = columns
kb.data.cachedColumns[conf.db] = table
diff --git a/xml/queries.xml b/xml/queries.xml
index a933d011e..9a5015bed 100644
--- a/xml/queries.xml
+++ b/xml/queries.xml
@@ -320,7 +320,9 @@
-
+
+
+