Skip to main content

burp2model

Turn a Burp Suite history into an evidence-backed model of a web app.

Hosts, pages, scripts, endpoints, parameters, auth, and the gaps in what you captured, each tied to the request that proves it. Query it locally with no AI, or hand the model to your own AI instead of raw traffic.

PyPI License Tests Secrets masked Docs

burp2model turning a Burp history into a web-app model

Why

Pasting a multi-megabyte bundle and a HAR file into a chat model tends to produce invented endpoints and generic advice, and it ships your session cookies along with the bytes. burp2model builds a model first: every endpoint is tied to a real request, paths your code references but never calls are called out, and what the capture could not show is listed rather than guessed at. It is a model builder, not a scanner or exploit tool.

Install

pip install burp2model        # Python 3.9+, no dependencies

Quickstart

# In Burp: Proxy → HTTP history → select all → right-click → Save items → history.xml
# (a Logger++ CSV export works too)
burp2model history.xml --webapp shop

# Ask it questions, deterministically, with no language model involved
burp2model query shop "code vs runtime"
burp2model query shop list-apis
burp2model query shop help          # every question it answers

# No Burp? Crawl the running app instead (authorized targets only)
burp2model crawl https://shop.example.com/ -w shop --yes

Try it without a capture of your own: ./demo.sh builds the bundled sample.

Output goes to burp2model-out/shop/:

File What it is
report.html Self-contained interactive report: map, Ask box, Copy for AI, redacted request/response per request
model.json The six-layer graph with an evidence table mapping every ev_N to its request
context.json The evidence package to give an LLM instead of raw traffic
graph.db The model as one SQLite file, queryable with burp2model q
graph.json, graph.graphml The graph for D3, Cytoscape, Gephi, yEd

What you get

  • A six-layer model: edge, routes, client code, APIs (each labelled BOTH, STATIC_ONLY or RUNTIME_ONLY), trust, and named unknowns. Every edge is OBSERVED or INFERRED, never mixed.
  • Queries with no AI: every answer cites evidence ids and ends Model call: none. A question it cannot answer is refused, not guessed.
  • Copy for AI: a rules-first context package your own model can reason over.
  • Graph and BQL: a SQLite graph with a filter-and-path query language.
  • Redaction first: secrets, cookies, tokens and PII are masked before anything is written. Secrets are kept only as a keyed fingerprint (kind, length, entropy).
  • Deterministic: the same input gives byte-identical output.

Commands

Command Purpose
build (default) Build the model from a Burp XML or Logger++ CSV export
crawl Build the model from a running app in a real browser, no Burp needed
query Ask the model a factual question, no AI
q Query graph.db with BQL
graph Reason over the graph, or export GraphML / Cypher / JSON
cross-role Compare what two roles reached
gaps, changes, falsify, methodology Analyst commands over the model
osint External recon for a host (authorized targets only)

Run burp2model <command> --help for options.

Boundaries

It does It never
Read a capture you exported Upload, forward or replay it
Mask every value before the first write Store a token, cookie, key or PII value
Say what it could not observe Claim coverage it did not have
Offer hypotheses and the evidence to test them Call anything a vulnerability

A plain build is fully offline. External recon (DNS, TLS, headers) runs only if you pass --osint or run the osint command, and BURP2MODEL_OFFLINE=1 forces it off. Only use crawl and osint on systems you are authorized to test.

CI plants fake secrets in the bundled samples and fails if any appears in any output.

Documentation

Full site: falc0n-researcher.github.io/burp2model

License

Apache-2.0. See LICENSE.

Metadata

Release files for burp2model 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for burp2model 1.0.1
File Size Uploaded
burp2model-1.0.1.tar.gz 1.5 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for burp2model 1.0.1
File Interpreter ABI Platform
burp2model-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 1.7 MB

Release files / burp2model-1.0.1.tar.gz

Download URL burp2model-1.0.1.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
548e20506a417c4198c41d3ea3bd9e45bd78e2bcb3a96c3939904c50077fab4f
BLAKE2b-256 checksum
How to use checksums
22b6e029134781b6fe7c698c8ec318e76e8fd6a3dc0c773000a486e4e138b32d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.18

Release files / burp2model-1.0.1-py3-none-any.whl

Download URL burp2model-1.0.1-py3-none-any.whl
Size 265.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b7fa819d4b6de216ce6ee706e89bccb841ad02f3820a31643f52cede2dc86bba
BLAKE2b-256 checksum
How to use checksums
4969dc1405c7b90ef4b2796b39b097f2621faf0047f547298a55daa7826fe368
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.18

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page