@@ -51,11 +51,13 @@ class WebSocketException(Exception):
5151from lib .core .common import randomStr
5252from lib .core .common import readInput
5353from lib .core .common import removeReflectiveValues
54+ from lib .core .common import safeVariableNaming
5455from lib .core .common import singleTimeLogMessage
5556from lib .core .common import singleTimeWarnMessage
5657from lib .core .common import stdev
5758from lib .core .common import wasLastResponseDelayed
5859from lib .core .common import unicodeencode
60+ from lib .core .common import unsafeVariableNaming
5961from lib .core .common import urldecode
6062from lib .core .common import urlencode
6163from lib .core .data import conf
@@ -1028,8 +1030,11 @@ def _randomizeParameter(paramString, randomParameter):
10281030 for part in item .split (delimiter ):
10291031 if '=' in part :
10301032 name , value = part .split ('=' , 1 )
1031- name = re .sub (r"[^\w]" , "" , name .strip ())
1032- if name in keywords :
1033+ name = name .strip ()
1034+ if safeVariableNaming (name ) != name :
1035+ conf .evalCode = re .sub (r"\b%s\b" % re .escape (name ), safeVariableNaming (name ), conf .evalCode )
1036+ name = safeVariableNaming (name )
1037+ elif name in keywords :
10331038 name = "%s%s" % (name , EVALCODE_KEYWORD_SUFFIX )
10341039 value = urldecode (value , convall = True , plusspace = (item == post and kb .postSpaceToPlus ))
10351040 variables [name ] = value
@@ -1038,8 +1043,11 @@ def _randomizeParameter(paramString, randomParameter):
10381043 for part in cookie .split (conf .cookieDel or DEFAULT_COOKIE_DELIMITER ):
10391044 if '=' in part :
10401045 name , value = part .split ('=' , 1 )
1041- name = re .sub (r"[^\w]" , "" , name .strip ())
1042- if name in keywords :
1046+ name = name .strip ()
1047+ if safeVariableNaming (name ) != name :
1048+ conf .evalCode = re .sub (r"\b%s\b" % re .escape (name ), safeVariableNaming (name ), conf .evalCode )
1049+ name = safeVariableNaming (name )
1050+ elif name in keywords :
10431051 name = "%s%s" % (name , EVALCODE_KEYWORD_SUFFIX )
10441052 value = urldecode (value , convall = True )
10451053 variables [name ] = value
@@ -1050,10 +1058,18 @@ def _randomizeParameter(paramString, randomParameter):
10501058 except SyntaxError , ex :
10511059 if ex .text :
10521060 original = replacement = ex .text .strip ()
1053- for _ in re .findall (r"[A-Za-z_]+" , original )[::- 1 ]:
1054- if _ in keywords :
1055- replacement = replacement .replace (_ , "%s%s" % (_ , EVALCODE_KEYWORD_SUFFIX ))
1056- break
1061+ if '=' in original :
1062+ name , value = original .split ('=' , 1 )
1063+ name = name .strip ()
1064+ if safeVariableNaming (name ) != name :
1065+ replacement = re .sub (r"\b%s\b" % re .escape (name ), safeVariableNaming (name ), replacement )
1066+ elif name in keywords :
1067+ replacement = re .sub (r"\b%s\b" % re .escape (name ), "%s%s" % (name , EVALCODE_KEYWORD_SUFFIX ), replacement )
1068+ else :
1069+ for _ in re .findall (r"[A-Za-z_]+" , original )[::- 1 ]:
1070+ if _ in keywords :
1071+ replacement = replacement .replace (_ , "%s%s" % (_ , EVALCODE_KEYWORD_SUFFIX ))
1072+ break
10571073 if original == replacement :
10581074 conf .evalCode = conf .evalCode .replace (EVALCODE_KEYWORD_SUFFIX , "" )
10591075 break
@@ -1073,6 +1089,11 @@ def _randomizeParameter(paramString, randomParameter):
10731089 del variables [variable ]
10741090 variables [variable .replace (EVALCODE_KEYWORD_SUFFIX , "" )] = value
10751091
1092+ if unsafeVariableNaming (variable ) != variable :
1093+ value = variables [variable ]
1094+ del variables [variable ]
1095+ variables [unsafeVariableNaming (variable )] = value
1096+
10761097 uri = variables ["uri" ]
10771098
10781099 for name , value in variables .items ():
0 commit comments