Skip to content

Repository files navigation

Tenant Isolation Mapper (Burp Suite Extension)

A Burp Suite extension that automates cross-tenant IDOR / broken object-level authorization testing in multi-tenant web applications.

The Problem

Manually testing tenant isolation means repeating the same request with a different tenant's session/cookie and eyeballing whether the response leaks data. This extension automates that comparison and gives a clear verdict.

How It Works

  1. Capture a request in Burp Repeater (as Tenant A)
  2. Right-click the request → "Send to Tenant Isolation Mapper"
  3. Go to the TIM tab, enter Tenant B's cookie / auth header
  4. Click Run Probes
  5. The extension re-sends the request as Tenant B and compares the response against the original
  6. Get a verdict: VULNERABLE, LIKELY_VULNERABLE, or NOT_VULNERABLE

Demo Results

TIM tab, ready to configure

Empty TIM tab

Confirmed IDOR — cross-tenant data leak (100% similarity)

Vulnerable result

Both results side-by-side (vulnerable + correctly-protected endpoint)

Both results

Exporting the report

Export report

Report saved confirmation

Report saved

Final HTML report

HTML report

Installation

  1. Open Burp Suite → Extensions tab → InstalledAdd
  2. Extension type: Java
  3. Extension file: select the built .jar (built from src/)
  4. Click Next — a new TIM tab appears in Burp's top menu

Usage

  1. Send any authenticated request to Repeater
  2. Right-click → Send to Tenant Isolation Mapper
  3. In the TIM tab, fill in:
    • Tenant B Cookie — a second tenant/user's session cookie
    • Tenant B Auth Header (optional) — for bearer-token apps
    • Similarity threshold — default 0.85
  4. Click Run Probes
  5. Review the Verdict and Reasons columns
  6. Click Export HTML Report to save a shareable report

Demo / Local Testing

demo/vuln_server.py is a minimal Python HTTP server used to validate the extension locally:

  • /api/invoice/1001 — no ownership check (intentionally vulnerable)
  • /api/document/9001 — checks the cookie before returning data (safe)

Run it with:python3 demo/vuln_server.py

Then test both endpoints through the extension — one should return VULNERABLE, the other NOT_VULNERABLE.

Sample Report

See docs/tim_report.html for a real exported report from the demo run.

Tech Stack

  • Java, Burp Extender/Montoya API
  • Response similarity-based verdict classification

Disclaimer

Built for authorized security testing and bug bounty research only. Do not use against systems you don't have explicit permission to test.