def fuzz(data): """Fuzz the payload.""" rdg = RandomPayloadGenerator() new_key = rdg.generate_random_key_for_dict(data) new_data = rdg.generate_random_payload(restrict_types=(list, dict)) print(new_key) print(new_data)
def add_items_one_iter(original_payload, how_many): """Add new items into the original payload, produce new one.""" # deep copy new_payload = copy.deepcopy(original_payload) rpg = RandomPayloadGenerator() for i in range(how_many): new_key = rpg.generate_random_key_for_dict(new_payload) new_value = rpg.generate_random_payload() new_payload[new_key] = new_value # generate output with the updated payload generate_output(new_payload)
def mutate_items_one_iteration(original_payload, how_many): """One iteration of algorithm to mutate items in original payload.""" # Perform deep copy of original payload. new_payload = copy.deepcopy(original_payload) rpg = RandomPayloadGenerator() for i in range(how_many): selected_key = random.choice(list(original_payload.keys())) new_value = rpg.generate_random_payload() new_payload[selected_key] = new_value filename = filename_mutated_items() generate_output(filename, new_payload)
def add_items_one_iter(original_payload, how_many): """One iteration of algorithm to add items into original payload.""" # Perform deep copy of original payload. new_payload = copy.deepcopy(original_payload) rpg = RandomPayloadGenerator() for i in range(how_many): new_key = rpg.generate_random_key_for_dict(new_payload) new_value = rpg.generate_random_payload() new_payload[new_key] = new_value filename = filename_added_items() generate_output(filename, new_payload)
def change_items_one_iteration(original_payload, how_many): """Change items in the original payload, produce new one.""" # deep copy new_payload = copy.deepcopy(original_payload) rpg = RandomPayloadGenerator() # try to change how_many items in the payload for i in range(how_many): selected_key = random.choice(list(original_payload.keys())) new_value = rpg.generate_random_payload() # update data in payload new_payload[selected_key] = new_value # generate output with the updated payload generate_output(new_payload)
def run_tests_with_changed_items_one_iteration(url, http_method, dry_run, original_payload, cfg, expected_status, how_many, test, results): """One iteration for the run_tests_with_changed_items().""" with log.indent(): # deep copy new_payload = copy.deepcopy(original_payload) rpg = RandomPayloadGenerator() for i in range(0, how_many): log.info("Changing item #{n} in the payload".format(n=i)) selected_key = random.choice(list(original_payload.keys())) new_value = rpg.generate_random_payload() new_payload[selected_key] = new_value perform_test(url, http_method, dry_run, new_payload, cfg, expected_status, test, results)
def run_tests_with_added_items_one_iteration(url, http_method, dry_run, original_payload, cfg, expected_status, how_many, test, results): """One iteration for the run_tests_with_added_items().""" with log.indent(): # deep copy new_payload = copy.deepcopy(original_payload) rpg = RandomPayloadGenerator() for i in range(how_many): log.info("Adding item #{n} into the payload".format(n=i)) new_key = rpg.generate_random_key_for_dict(new_payload) new_value = rpg.generate_random_payload() new_payload[new_key] = new_value perform_test(url, http_method, dry_run, new_payload, cfg, expected_status, test, results)