diff --git a/lib/core/agent.py b/lib/core/agent.py index 0aa3758a0..a88440476 100644 --- a/lib/core/agent.py +++ b/lib/core/agent.py @@ -448,8 +448,8 @@ class Agent: concatenatedQuery = concatenatedQuery.replace("SELECT ", "'%s'||" % kb.misc.start, 1) concatenatedQuery += "||'%s'" % kb.misc.stop elif fieldsSelectCase: - concatenatedQuery = concatenatedQuery.replace("SELECT ", "'%s'||" % kb.misc.start, 1) - concatenatedQuery += "||'%s'" % kb.misc.stop + concatenatedQuery = concatenatedQuery.replace("SELECT ", "'%s'||(SELECT " % kb.misc.start, 1) + concatenatedQuery += ")||'%s'" % kb.misc.stop elif fieldsSelectFrom: concatenatedQuery = concatenatedQuery.replace("SELECT ", "'%s'||" % kb.misc.start, 1) concatenatedQuery = concatenatedQuery.replace(" FROM ", "||'%s' FROM " % kb.misc.stop, 1) @@ -459,9 +459,6 @@ class Agent: elif fieldsNoSelect: concatenatedQuery = "'%s'||%s||'%s'" % (kb.misc.start, concatenatedQuery, kb.misc.stop) - if backend.getIdentifiedDbms() == DBMS.ORACLE and " FROM " not in concatenatedQuery and (fieldsSelect or fieldsNoSelect): - concatenatedQuery += " FROM DUAL" - elif backend.getIdentifiedDbms() in (DBMS.MSSQL, DBMS.SYBASE): if fieldsExists: concatenatedQuery = concatenatedQuery.replace("SELECT ", "'%s'+" % kb.misc.start, 1) @@ -552,7 +549,7 @@ class Agent: inbandQuery += query[conditionIndex:] if backend.getIdentifiedDbms() in FROM_TABLE: - if " FROM " not in inbandQuery: + if " FROM " not in inbandQuery or "(CASE " in inbandQuery: inbandQuery += FROM_TABLE[backend.getIdentifiedDbms()] if intoRegExp: