diff --git a/lib/controller/controller.py b/lib/controller/controller.py index 342a2fb9a..73ec08260 100644 --- a/lib/controller/controller.py +++ b/lib/controller/controller.py @@ -161,12 +161,13 @@ def __randomFillBlankFields(value): message = "do you want to fill blank fields with random values? [Y/n] " test = readInput(message, default="Y") if not test or test[0] in ("y", "Y"): - while extractRegexResult(EMPTY_FORM_FIELDS_REGEX, retVal): - item = extractRegexResult(EMPTY_FORM_FIELDS_REGEX, retVal) - if item[-1] == DEFAULT_GET_POST_DELIMITER: - retVal = retVal.replace(item, "%s%s%s" % (item[:-1], randomStr(), DEFAULT_GET_POST_DELIMITER)) - else: - retVal = retVal.replace(item, "%s%s" % (item, randomStr())) + for match in re.finditer(EMPTY_FORM_FIELDS_REGEX, retVal): + item = match.group("result") + if not any(_ in item for _ in IGNORE_PARAMETERS): + if item[-1] == DEFAULT_GET_POST_DELIMITER: + retVal = retVal.replace(item, "%s%s%s" % (item[:-1], randomStr(), DEFAULT_GET_POST_DELIMITER)) + else: + retVal = retVal.replace(item, "%s%s" % (item, randomStr())) return retVal diff --git a/lib/core/settings.py b/lib/core/settings.py index 23d9613ae..ca0f20b3e 100644 --- a/lib/core/settings.py +++ b/lib/core/settings.py @@ -455,3 +455,6 @@ MAX_HELP_OPTION_LENGTH = 18 # Strings for detecting formatting errors FORMAT_EXCEPTION_STRINGS = ("Type mismatch", "Error converting", "Failed to convert", "System.FormatException", "java.lang.NumberFormatException") + +# Regular expression used for extracting ASP.NET View State values +VIEWSTATE_REGEX = r'(?P__VIEWSTATE[^"]*)[^>]+value="(?P[^"]+)'