mirror of
https://github.com/ysoftdevs/wapifuzz.git
synced 2026-03-17 23:13:53 +01:00
Refactoring
This commit is contained in:
@@ -8,7 +8,6 @@ from configuration_manager import ConfigurationManager
|
|||||||
|
|
||||||
|
|
||||||
class RequestBuildHelper(object):
|
class RequestBuildHelper(object):
|
||||||
|
|
||||||
# Content-length and Host are mandatory
|
# Content-length and Host are mandatory
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def generate_headers(config):
|
def generate_headers(config):
|
||||||
@@ -36,12 +35,7 @@ class RequestBuildHelper(object):
|
|||||||
return headers is not None and header_name in headers
|
return headers is not None and header_name in headers
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def generate_uri(uri, uri_parameters, fuzzable=False):
|
def _generate_base_uri_path(uri, uri_parameters, id_generator, fuzzable, already_used_parameters):
|
||||||
id_generator = _unique_uri_attribute_id()
|
|
||||||
|
|
||||||
already_used_parameters: List[str] = []
|
|
||||||
|
|
||||||
# 1] Generate URI as it is in payloads file
|
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
# Find first not yet found parameter, if there is one
|
# Find first not yet found parameter, if there is one
|
||||||
@@ -62,15 +56,24 @@ class RequestBuildHelper(object):
|
|||||||
s_http_string(uri, fuzzable=False, encoding=EncodingTypes.ascii, name=name)
|
s_http_string(uri, fuzzable=False, encoding=EncodingTypes.ascii, name=name)
|
||||||
break
|
break
|
||||||
|
|
||||||
# 2] Append another URI attributes
|
@staticmethod
|
||||||
|
def _generate_additional_query_parameters(uri_parameters, already_used_parameters, id_generator, fuzzable):
|
||||||
for uri_parameter in uri_parameters:
|
for uri_parameter in uri_parameters:
|
||||||
parameter_name = uri_parameter["Name"]
|
parameter_name = uri_parameter["Name"]
|
||||||
if parameter_name not in already_used_parameters and uri_parameter["Location"] == "Query":
|
if parameter_name not in already_used_parameters and uri_parameter["Location"] == "Query":
|
||||||
prefix = "?" if "?" not in s_render().decode('ascii', 'ignore') else "&"
|
prefix = "?" if "?" not in s_render().decode('ascii', 'ignore') else "&"
|
||||||
name = "URI attribute, default value: " + uri + ", id: " + next(id_generator)
|
name = "URI attribute, default value: " + parameter_name + ", id: " + next(id_generator)
|
||||||
s_http_string(prefix + parameter_name + "=", fuzzable=False, encoding=EncodingTypes.ascii, name=name)
|
s_http_string(prefix + parameter_name + "=", fuzzable=False, encoding=EncodingTypes.ascii, name=name)
|
||||||
RequestBuildHelper._append_parameter(parameter_name, id_generator, uri_parameters, fuzzable)
|
RequestBuildHelper._append_parameter(parameter_name, id_generator, uri_parameters, fuzzable)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def generate_uri(uri, uri_parameters, fuzzable=False):
|
||||||
|
id_generator = _unique_uri_attribute_id()
|
||||||
|
already_used_parameters: List[str] = []
|
||||||
|
|
||||||
|
RequestBuildHelper._generate_base_uri_path(uri, uri_parameters, id_generator, fuzzable, already_used_parameters)
|
||||||
|
RequestBuildHelper._generate_additional_query_parameters(uri_parameters, already_used_parameters, id_generator, fuzzable)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _append_parameter(parameter_name, id_generator, uri_parameters, fuzzable):
|
def _append_parameter(parameter_name, id_generator, uri_parameters, fuzzable):
|
||||||
fixed_attributes = ConfigurationManager.config["fixed_url_attributes"] if "fixed_url_attributes" in ConfigurationManager.config else None
|
fixed_attributes = ConfigurationManager.config["fixed_url_attributes"] if "fixed_url_attributes" in ConfigurationManager.config else None
|
||||||
|
|||||||
Reference in New Issue
Block a user