diff --git a/plugins/generic/search.py b/plugins/generic/search.py
index 4edbfa8c6..a79ff9093 100644
--- a/plugins/generic/search.py
+++ b/plugins/generic/search.py
@@ -193,6 +193,16 @@ class Search:
query += whereDbsQuery
values = inject.getValue(query, blind=False, time=False)
+ if Backend.isDbms(DBMS.SQLITE):
+ newValues = []
+
+ if isinstance(values, basestring):
+ values = [values]
+ for value in values:
+ newValues.append(["SQLite_masterdb", value])
+
+ values = newValues
+
for foundDb, foundTbl in filterPairValues(values):
foundDb = safeSQLIdentificatorNaming(foundDb)
foundTbl = safeSQLIdentificatorNaming(foundTbl, True)
@@ -205,47 +215,50 @@ class Search:
else:
foundTbls[foundDb] = [foundTbl]
else:
- infoMsg = "fetching number of databases with table"
- if tblConsider == "1":
- infoMsg += "s like"
- infoMsg += " '%s'" % unsafeSQLIdentificatorNaming(tbl)
- logger.info(infoMsg)
-
- query = rootQuery.blind.count
- query += tblQuery
- query += whereDbsQuery
- count = inject.getValue(query, union=False, error=False, expected=EXPECTED.INT, charsetType=CHARSET_TYPE.DIGITS)
-
- if not isNumPosStrValue(count):
- warnMsg = "no databases have table"
+ if not Backend.isDbms(DBMS.SQLITE):
+ infoMsg = "fetching number of databases with table"
if tblConsider == "1":
- warnMsg += "s like"
- warnMsg += " '%s'" % unsafeSQLIdentificatorNaming(tbl)
- logger.warn(warnMsg)
+ infoMsg += "s like"
+ infoMsg += " '%s'" % unsafeSQLIdentificatorNaming(tbl)
+ logger.info(infoMsg)
- continue
-
- indexRange = getLimitRange(count)
-
- for index in indexRange:
- query = rootQuery.blind.query
+ query = rootQuery.blind.count
query += tblQuery
query += whereDbsQuery
- if Backend.isDbms(DBMS.DB2):
- query += ") AS foobar"
- query = agent.limitQuery(index, query)
+ count = inject.getValue(query, union=False, error=False, expected=EXPECTED.INT, charsetType=CHARSET_TYPE.DIGITS)
- foundDb = unArrayizeValue(inject.getValue(query, union=False, error=False))
- foundDb = safeSQLIdentificatorNaming(foundDb)
+ if not isNumPosStrValue(count):
+ warnMsg = "no databases have table"
+ if tblConsider == "1":
+ warnMsg += "s like"
+ warnMsg += " '%s'" % unsafeSQLIdentificatorNaming(tbl)
+ logger.warn(warnMsg)
- if foundDb not in foundTbls:
- foundTbls[foundDb] = []
+ continue
+
+ indexRange = getLimitRange(count)
+
+ for index in indexRange:
+ query = rootQuery.blind.query
+ query += tblQuery
+ query += whereDbsQuery
+ if Backend.isDbms(DBMS.DB2):
+ query += ") AS foobar"
+ query = agent.limitQuery(index, query)
+
+ foundDb = unArrayizeValue(inject.getValue(query, union=False, error=False))
+ foundDb = safeSQLIdentificatorNaming(foundDb)
+
+ if foundDb not in foundTbls:
+ foundTbls[foundDb] = []
+
+ if tblConsider == "2":
+ foundTbls[foundDb].append(tbl)
if tblConsider == "2":
- foundTbls[foundDb].append(tbl)
-
- if tblConsider == "2":
- continue
+ continue
+ else:
+ foundTbls["SQLite_masterdb"] = []
for db in foundTbls.keys():
db = safeSQLIdentificatorNaming(db)
@@ -257,7 +270,8 @@ class Search:
logger.info(infoMsg)
query = rootQuery.blind.count2
- query = query % unsafeSQLIdentificatorNaming(db)
+ if not Backend.isDbms(DBMS.SQLITE):
+ query = query % unsafeSQLIdentificatorNaming(db)
query += " AND %s" % tblQuery
count = inject.getValue(query, union=False, error=False, expected=EXPECTED.INT, charsetType=CHARSET_TYPE.DIGITS)
@@ -275,7 +289,8 @@ class Search:
for index in indexRange:
query = rootQuery.blind.query2
- query = query % unsafeSQLIdentificatorNaming(db)
+ if not Backend.isDbms(DBMS.SQLITE):
+ query = query % unsafeSQLIdentificatorNaming(db)
query += " AND %s" % tblQuery
query = agent.limitQuery(index, query)
diff --git a/xml/queries.xml b/xml/queries.xml
index d7db742c0..3a186642e 100644
--- a/xml/queries.xml
+++ b/xml/queries.xml
@@ -347,7 +347,10 @@
-
+
+
+
+