Visual masking of sensitive data in Burp Suite for safe screen sharing and screenshots.
BlackMarker adds a "BlackMarker" tab to every HTTP message editor in Burp Suite (Proxy, Repeater, Intruder, Scanner, etc.). It visually masks sensitive data — without modifying the actual HTTP traffic — so you can safely share your screen, record demos, or take screenshots.
- 60+ built-in regex rules covering PII, auth tokens, passwords, infrastructure, crypto keys
- Entropy-based detection — catches random-looking secrets via Shannon entropy analysis
- Auto-learn — automatically tracks session cookies, CSRF tokens, and auth tokens from live traffic
- Capture group masking — rules can target specific parts of a match (e.g. only the value in
"ssn": "123-45-6789") - Edge preservation — long values show first/last characters for context (e.g.
eyJ████████████g)
- Color-coded categories — PII (blue), Auth (red), Infrastructure (orange), Crypto (purple), Session (green)
- Click-to-reveal — click any masked region to toggle the original value
- Right-click manual masking — select text → right-click → "Mask selection"
- HTTP syntax coloring — header names in dark blue, request line in dark red
- Hide uninteresting headers — toggle to collapse standard headers (Accept, User-Agent, Cache-Control, etc.)
- Line wrapping — long masked runs wrap correctly at any character
- Truncation — optionally shorten long masked strings (e.g. JWTs) with ellipsis:
████…████ - Monochrome mode — single color for all categories
- Global mask character — change
█to any character (*,X,#, etc.) - Per-category color overrides — full control over foreground and background colors
- Custom categories — define your own with name and colors
- Rule editor — add/edit/remove rules with live regex validation and test field
- Import/export rules — JSON format for sharing between teams
- "BlackMarker" tab in every HTTP message editor
- Context menu — right-click → "Copy Masked Request/Response" to clipboard
- Main BlackMarker tab — rules management, settings, live test, auto-learn dashboard
- Persistence — all rules and settings survive Burp restarts via Persistence API
| Category | Color | Examples |
|---|---|---|
| PII | 🔵 Blue | Email, phone, SSN, credit card, IP, MAC, date of birth |
| Auth | 🔴 Red | JWT, Bearer, API keys (AWS, GCP, GitHub, Slack, Stripe, Telegram) |
| Infrastructure | 🟠 Orange | Internal IPs, S3 buckets, database URLs, Docker registry, ARN |
| Crypto | 🟣 Purple | PEM keys, Bitcoin/Ethereum addresses, hashes |
| Session | 🟢 Green | Cookies, CSRF tokens, Session IDs, OAuth state/nonce |
| Custom | ⚪ Gray | User-defined rules |
Option A — Gradle (requires Java 17+ and Gradle 7+):
./gradlew jar
# Output: build/libs/BlackMarker-1.0.0.jarOption B — Docker (no local Java required):
docker build --target artifact --output build/ .
# Output: build/BlackMarker-1.0.0.jar- Open Burp Suite (Professional or Community)
- Go to Extensions → Installed → Add
- Set Extension type: Java
- Select
BlackMarker-1.0.0.jar - Click Next — you should see "BlackMarker loaded" in the output
- Open any HTTP request/response in Proxy, Repeater, or other tools
- Switch to the "BlackMarker" tab (next to Raw / Headers / Hex)
- Sensitive data is masked with colored highlights by category
- Click any masked region to reveal the original value
- Click again to re-mask it
- Select any text in the BlackMarker view
- Right-click → "█ Mask selection"
- Right-click → "✖ Clear manual masks" to undo
| Button | Action |
|---|---|
| Masking On/Off | Toggle masking |
| Copy Masked | Copy masked text to clipboard |
| Wrap | Toggle line wrapping |
| Hide Headers | Toggle uninteresting headers |
- Go to the main BlackMarker tab in Burp
- Rules sub-tab — view, add, edit, delete rules
- Filter by category, toggle groups with Enable/Disable All
- Use Import/Export buttons for JSON backup
- Main BlackMarker tab → Live Test
- Paste HTTP traffic in the input field
- Click "Run Masking Test" — see masked output with colored highlights
- Appearance — monochrome mode, global mask character, truncation settings
- Category Colors — click table cells to change colors per category
- Custom Categories — add your own categories with custom colors
- Entropy Detection — configure threshold, min/max string length
blackmarker/
├── BlackMarkerExtension.java # Entry point, Burp registration
├── engine/
│ └── MaskingEngine.java # Core masking (regex + entropy + session)
├── model/
│ ├── RuleCategory.java # Category enum
│ ├── MaskingRule.java # Rule model
│ ├── MaskMatch.java # Match result
│ ├── MaskingResult.java # Full masking result
│ ├── PluginSettings.java # Settings singleton
│ └── CustomCategory.java # User-defined category model
├── rules/
│ ├── DefaultRules.java # 60+ built-in rules
│ ├── EntropyDetector.java # Shannon entropy detection
│ └── SessionValueTracker.java # Auto-learn session values
├── ui/
│ ├── BlackMarkerTab.java # Main tab (rules, settings, test, auto-learn)
│ ├── RuleManagerPanel.java # Rule management panel
│ ├── RuleTableModel.java # JTable model for rules
│ ├── MaskedTextPane.java # Custom JTextPane with colored masking
│ ├── MaskedRequestEditorProvider.java # Request editor tab provider
│ ├── MaskedResponseEditorProvider.java # Response editor tab provider
│ ├── ContextMenuProvider.java # "Copy Masked" context menu
│ └── ColorScheme.java # Color scheme with overrides
└── export/
└── SessionExporter.java # HTML/Text export
- Visual only — HTTP traffic is never modified; masking is purely for display
- Same-length replacement — masked text has the same length as original (positions preserved for click-to-reveal)
- Thread-safe — ConcurrentHashMap for session tracking, CopyOnWriteArrayList for rules
- Persistence — rules, settings, and preferences saved via Burp Persistence API
- Burp theme aware — UI adapts to Burp's light/dark theme
- BlackMarker → Rules → Add Rule
- Fill in: Name, Category, Regex, Mask char, Description
- Use Test Regex to validate before saving
[
{
"name": "Internal Project Code",
"regex": "PROJ-[A-Z0-9]{8,}",
"category": "CUSTOM",
"maskChar": "█",
"enabled": true,
"description": "Internal project identifiers"
}
]- Burp Suite Professional or Community (2023.1+)
- Java 17+ (bundled with modern Burp Suite)
MIT License — see LICENSE for details.