Skip to content
Request handling

Request handling

Safe request — inline try/except + positive response check

The request call remains inside its own try block. A transport exception prints the operation that failed and exits before later code attempts to use an unassigned response variable. verify=False, timeout=10, and proxies=PROXIES apply the same TLS, timeout, and proxy behavior to the request.

Transport success only means that an HTTP response arrived. The separate response check uses an application-specific marker that appears only after the intended operation succeeds.

try:
    r = s.post(url=f"{URL}/login", data=data, verify=False, timeout=10, proxies=PROXIES)
except Exception as e:
    print(f"[-] {Fore.RED}Could not make login request: {e}")
    sys.exit(1)

# validate the response before trusting it
if "Profile Management" not in r.text:
    print(f"[-] {Fore.RED}Wrong credentials.")
    sys.exit(1)
print(f"[+] {Fore.LIGHTGREEN_EX}Successfully logged in!")

Find by: session, safe request, try except, generic catch, error handling, timeout, sys.exit, response validation, success marker, colorama, get, post · Source: CWEE/many

Oracle shape — transport separate from truth test

An oracle converts target behavior into one reliable bit: Python True or False. Keeping transport and classification separate makes the boundary explicit.

send_candidate() accepts the candidate string, places it in the request field that reaches the sink, and returns the HTTP response object. oracle() calls that transport function and checks a positive marker that proves the injected condition was true. A test such as FALSE_STRING not in r.text also classifies unrelated errors and changed response pages as true unless additional checks rule them out.

TRUE_STRING = "Login Successful"

def send_candidate(s, candidate):
    data = {
        "username": candidate,
        "password": "x"
    }
    r = s.post(url=f"{URL}/login", data=data, verify=False, timeout=10, proxies=PROXIES)
    return r

def oracle(s, candidate):
    try:
        r = send_candidate(s, candidate)
    except Exception as e:
        print(f"[-] {Fore.RED}Request failed: {e}")
        sys.exit(1)
    is_true = r.status_code == 200 and TRUE_STRING in r.text
    return is_true

Find by: oracle, positive marker, response sanity check, blind extraction, transport wrapper, true string, false positive, request helper