@@ -601,15 +601,16 @@ def paramToDict(place, parameters=None):
601601 logger .warn (warnMsg )
602602
603603 if place in (PLACE .POST , PLACE .GET ):
604- regex = r"\A([^\w]+.*\w+)([^\w]+)\Z"
605- match = re .search (regex , testableParameters [parameter ])
606- if match :
607- _ = re .sub (regex , "\g<1>%s\g<2>" % CUSTOM_INJECTION_MARK_CHAR , testableParameters [parameter ])
608- message = "it appears that provided value for %s parameter '%s' " % (place , parameter )
609- message += "has boundaries. Do you want to inject inside? ('%s') [y/N] " % _
610- test = readInput (message , default = "N" )
611- if test [0 ] in ("y" , "Y" ):
612- testableParameters [parameter ] = re .sub (regex , "\g<1>%s\g<2>" % BOUNDED_INJECTION_MARKER , testableParameters [parameter ])
604+ for regex in (r"\A((?:<[^>]+>)+\w+)((?:<[^>]+>)+)\Z" , r"\A([^\w]+.*\w+)([^\w]+)\Z" ):
605+ match = re .search (regex , testableParameters [parameter ])
606+ if match :
607+ _ = re .sub (regex , "\g<1>%s\g<%d>" % (CUSTOM_INJECTION_MARK_CHAR , len (match .groups ())), testableParameters [parameter ])
608+ message = "it appears that provided value for %s parameter '%s' " % (place , parameter )
609+ message += "has boundaries. Do you want to inject inside? ('%s') [y/N] " % _
610+ test = readInput (message , default = "N" )
611+ if test [0 ] in ("y" , "Y" ):
612+ testableParameters [parameter ] = re .sub (regex , "\g<1>%s\g<2>" % BOUNDED_INJECTION_MARKER , testableParameters [parameter ])
613+ break
613614
614615 if conf .testParameter and not testableParameters :
615616 paramStr = ", " .join (test for test in conf .testParameter )
0 commit comments