#!/usr/bin/env python3 import random from wordlists import get_wordlists def generate_server_error() -> tuple[str, str]: wl = get_wordlists() server_errors = wl.server_errors if not server_errors: return ("500 Internal Server Error", "text/html") server_type = random.choice(list(server_errors.keys())) server_config = server_errors[server_type] error_codes = { 400: "Bad Request", 401: "Unauthorized", 403: "Forbidden", 404: "Not Found", 500: "Internal Server Error", 502: "Bad Gateway", 503: "Service Unavailable", } code = random.choice(list(error_codes.keys())) message = error_codes[code] template = server_config.get("template", "") version = random.choice(server_config.get("versions", ["1.0"])) html = template.replace("{code}", str(code)) html = html.replace("{message}", message) html = html.replace("{version}", version) if server_type == "apache": os = random.choice(server_config.get("os", ["Ubuntu"])) html = html.replace("{os}", os) html = html.replace("{host}", "localhost") return (html, "text/html") def get_server_header(server_type: str = None) -> str: wl = get_wordlists() server_errors = wl.server_errors if not server_errors: return "nginx/1.18.0" if not server_type: server_type = random.choice(list(server_errors.keys())) server_config = server_errors.get(server_type, {}) version = random.choice(server_config.get("versions", ["1.0"])) server_headers = { "nginx": f"nginx/{version}", "apache": f"Apache/{version}", "iis": f"Microsoft-IIS/{version}", "tomcat": f"Apache-Coyote/1.1", } return server_headers.get(server_type, "nginx/1.18.0")