Overview

The Repeater is the manual testing workhorse. Whenever the scanner flags a potential vulnerability, or when you spot an interesting endpoint in the Interceptor, you send the request to the Repeater for hands-on investigation. Unlike automated scanning, the Repeater gives you precise control — you choose exactly what to change, when to send, and how to interpret the result.

Core Capabilities

Replaying Requests

Sending a Request

  1. 1

    Load a Request

    Get a request into the Repeater by any of these methods:

    • From scan findings: click a finding → Send to Repeater
    • From Interceptor: right-click a request in HTTP History → Send to Repeater
    • From Interceptor: press Ctrl+R on an intercepted request
    • Manual entry: type or paste a raw HTTP request directly into the editor
  2. 2

    Review the Request

    The request appears in the left panel with syntax highlighting. Verify the target host, method, path, headers, and body are correct.

  3. 3

    Send

    Click Send or press Ctrl+Enter. The response appears in the right panel with status code, headers, body, and timing.

  4. 4

    Analyze the Response

    Switch between response views using the tabs at the top of the response panel:

    • Raw — Complete HTTP response including status line and headers
    • Headers — Response headers only, with security header analysis
    • Body — Response body with syntax highlighting (JSON, HTML, XML)
    • Rendered — HTML body rendered in a sandboxed iframe
    • Hex — Hexadecimal dump of the response body

Modifying Parameters

The power of the Repeater is in modification. Change any part of the request and resend to test different attack vectors.

Common Modifications

What to ChangeTest ScenarioExample
Query parameters SQL injection, IDOR Change ?id=1 to ?id=1' OR 1=1--
JSON body values Mass assignment, type juggling Add "role":"admin" to a user update request
Cookie values Session fixation, auth bypass Decode JWT, change sub claim, re-encode
HTTP method Method override bypass Change GET to PUT or add X-HTTP-Method-Override: DELETE
Content-Type Parser differential Change application/json to application/xml
Authorization header Horizontal privilege escalation Replace with another user's token
Path segments Path traversal, access control Change /api/users/me to /api/users/admin

Comparing Responses

Response comparison is critical for confirming vulnerabilities. A response that differs in length, status code, or content when you inject a payload (versus the baseline) is a strong indicator.

How to Compare

  1. 1

    Send the Baseline

    Send the original, unmodified request. Note the response status, length, and content. This is your baseline for comparison.

  2. 2

    Send the Modified Request

    Change the parameter you are testing and send again. Note any differences in the response.

  3. 3

    Open Comparison View

    Click Compare (or Ctrl+D). Select the two responses from the history dropdown. PhantomYerra shows a side-by-side diff with:

    • Added lines highlighted in green
    • Removed lines highlighted in red
    • Changed characters highlighted inline
    • Status code, length, and timing comparison at the top
# Comparison summary example Baseline: 200 OK | 4,521 bytes | 132ms Modified: 200 OK | 8,734 bytes | 5,142ms ^^^^^ Differences: +4,213 bytes | +5,010ms response time Verdict: Time-based blind SQL injection CONFIRMED (5s delay matches SLEEP(5))

Session Handling

Many applications require valid session tokens. The Repeater supports automatic session management so your requests do not fail due to expired tokens.

Session Options

Session profiles: Create session profiles in Settings → Sessions. Each profile stores credentials, login URL, token extraction rules, and cookies. Switch profiles per Repeater tab for simultaneous multi-user testing.

Encoding & Decoding Helpers

The Repeater includes built-in encoding and decoding utilities. Select any text in the request or response editor and apply transformations.

Available Transformations

TransformationEncodeDecodeUse Case
URL%27%20OR%201%3D1' OR 1=1Query parameter injection
Base64YWRtaW46cGFzc3dvcmQ=admin:passwordAuthorization headers, tokens
HTML Entity&lt;script&gt;<script>XSS payload encoding
Hex0x61646d696eadminBinary protocol parameters
Unicode\u0061\u0064\u006dadmWAF bypass via unicode normalization
JWT DecodeHeader + payload + signatureInspect and modify JWT claims
GzipCompressed bytesDecompressed textCompressed request/response bodies
Hash (MD5/SHA)Hash digestVerify checksums, generate hash payloads

Using Transformations

Select text in the editor → right-click → Transform → choose the transformation. Or use the keyboard shortcut Ctrl+Shift+T to open the transformation dialog. Chain multiple transformations: select text, apply URL decode, then Base64 decode, to fully unwrap a doubly-encoded parameter.

Advanced Tips

Keyboard Shortcuts

ShortcutAction
Ctrl+EnterSend request
Ctrl+Shift+ISend to Intruder
Ctrl+ECapture as evidence
Ctrl+HToggle request history panel
Ctrl+DCompare two responses (diff view)
Ctrl+Shift+TOpen transformation dialog
Ctrl+NNew Repeater tab
Ctrl+WClose current tab
Ctrl+TabSwitch to next tab
Ctrl+Shift+TabSwitch to previous tab