Autonomous offensive security

Hunt the bugs that live behind the login.

HackBot drives your authenticated browser session against targets you're cleared to test — it reasons about the app, proves every finding, and writes the CVSS-scored report. No credentials ever leave your machine.

runs on 127.0.0.1your session, never ours 12 hunt modulesproof before report
scroll to watch a hunt
hackbot — app.target.com live hunt
requests
0
elapsed
00:00
verified
0
idorbroken-authzxss ssrfgraphqljs-secrets prompt-injection
12
specialist hunt modules
44
browser & HTTP tools
100%
runs on your machine
0 KB
data sent to our servers
Hunt modules

Twelve specialists. One for every class worth reporting.

Each module encodes how a seasoned researcher works that class — the hypotheses to form, the requests to replay, and what actually counts as proof. HackBot runs them with your live session and confirms before anything becomes a finding.

IDOR / BOLA

01

Replays the same request as each saved identity. The response that diverges is the finding.

authz_matrix → 1 divergence

Broken access control

02

Admin-only actions still reachable by a member — often on an older, forgotten route.

member → /admin/v1/* 200

Stored & reflected XSS

03

Confirmed by a canary that actually fires in the page, not by a pattern match.

canary fired · sink caught

SSRF & blind SSRF

04

Proven by a callback landing on a built-in out-of-band collector from the target's own IP.

oob callback ← target

GraphQL abuse

05

Schema without introspection, per-resolver authz, and batched mutations in one request.

500 mutations · 1 batch

Live secrets in JS

06

Keys pulled from bundles, then confirmed live by calling the vendor's own API.

sk_live_•••• ✓ live

Mass assignment

07

Hidden fields like role or is_admin the server quietly binds and saves.

body += role:admin

Excessive data exposure

08

Fields the API returns that the UI never renders — PII hiding one layer down.

+14 fields unrendered

Asset & subdomain takeover

09

Dangling script hosts and claimable packages loaded by the app's own origin.

cname → claimable

Business-logic flaws

10

Attacks the app's intent — negative quantities, replayed coupons, skipped states.

qty -1 → credit

Auth & session flaws

11

Token reuse, weak resets, and fixation across multi-step and MFA'd flows.

reset token reused

LLM prompt injection

12

Finds every AI surface and goes after exfiltration and actions — direct and via ingested docs.

poisoned doc → exfil
Proof, not noise

Verified, or it never reaches your queue.

Findings land triage-ready — severity, reproduction and the evidence captured while HackBot proved it. No pile of "potential" issues to chase down yourself.

01

It executes the proof

The canary fired, the callback landed, the leaked key answered the vendor API. A candidate it can't prove is dropped, not reported.

02

It diffs across identities

Save two or three accounts and HackBot replays each request as every one — separating "my data" from "everyone's data".

03

It writes the report

CVSS vector, reproduction steps and impact, formatted and ready to paste into your program or ticket.

▲Scope is your job. HackBot only runs on the tab you invoke it on — your own app, an enrolled program, or a target you have written permission to test.
✓ Verified High finding #1 · idor
8.1
CVSS · High

Invoice endpoint returns other tenants' records

GET /api/v2/invoices/{id} · app.target.com
Steps to reproduce
  1. Authenticate as analyst@acme (tenant A); open any invoice to learn the id format.
  2. Replay the request with an id harvested from the tenant-B export link.
  3. Server returns the full record — line items, billing address, tax id — with no ownership check.
Evidence
identity: analyst → 200 invoice=9c41… tenant=B LEAKED identity: tenant-b → 200 invoice=9c41… tenant=B identity: anon → 401 authz_matrix: 214 requests · 3 identities · 1 divergence
The proof engine

Don't take our word for it. Watch it prove its own findings.

Pick a bug class and see the exact evidence HackBot captures before it dares call something a finding. This is the difference between a maybe and a bug you can submit.

What it proves

The same request, read as three identities

A single account returning data is not a bug. HackBot replays the request as every saved identity and reports only the divergence — your data vs everyone's data.

✕A scanner fires one request, matches a signature, and files a "potential IDOR" for you to verify.
✓HackBot diffs 214 requests across 3 identities and attaches the one response that leaked.
◆ typical bounty · $1,500–8,000
Captured evidence
GET /api/v2/invoices/9c41 as analyst → 200 tenant=B LEAKED GET /api/v2/invoices/9c41 as tenant-b → 200 tenant=B GET /api/v2/invoices/9c41 as anon → 401 ─────────────────────────────────────── authz_matrix · 214 reqs · 3 identities · 1 divergence verdict: CONFIRMED · CVSS 8.1 (HIGH)
What it proves

A sink that actually fired

HackBot plants a unique canary and executes JavaScript in the live page. The finding exists only if the canary's callback fires — no reflected string guessing.

✕A scanner sees its payload reflected in the HTML and flags "possible XSS".
✓HackBot catches the canary executing, proving the sink is live and exploitable.
◆ typical bounty · $800–5,000
Captured evidence
inject → field "display_name" payload → <img src=x onerror=hb('c7f2')> render → /team/settings (stored) ─────────────────────────────────────── canary c7f2 FIRED in victim context dom sink: innerHTML · unescaped verdict: CONFIRMED · CVSS 7.4 (HIGH)
What it proves

A callback from the target's own IP

Blind SSRF has no on-screen tell. HackBot points the parameter at a built-in out-of-band collector and waits for the target's infrastructure to call home.

✕A scanner has nowhere to receive the callback, so blind SSRF is invisible to it.
✓HackBot runs its own collector and logs the inbound request from the target.
◆ typical bounty · $2,000–15,000
Captured evidence
param → "webhook_url" value → https://oob.hackbot.local/9f31 ─────────────────────────────────────── INBOUND GET /9f31 from 10.0.4.12 (target vpc) headers → aws-metadata user-agent verdict: CONFIRMED · CVSS 9.1 (CRITICAL)
What it proves

A key that answered the vendor

A string that looks like a secret is noise. HackBot extracts it from the JS bundle and makes one authenticated call to the vendor — a live key answers, a dead one doesn't.

✕A scanner regex-matches the string and reports a "possible leaked key".
✓HackBot calls the vendor API and confirms the key is live and in scope.
◆ typical bounty · $500–10,000
Captured evidence
source → chunk.4f2a.js (first-party) match → sk_live_51Hx•••••••••• ─────────────────────────────────────── probe → GET api.vendor.com/v1/account result → 200 · key is LIVE · acct_••• verdict: CONFIRMED · CVSS 8.6 (HIGH)
Why it finds more

A scanner sends requests. HackBot has your session.

01

It's already logged in.

It drives your real authenticated tab, so it reaches everything past the wall — multi-step wizards, MFA'd dashboards, tenant-scoped admin. The bugs that pay live exactly where an unauthenticated scanner stops.

get_cookieshttp_requestnetwork_tap
02

It proves before it reports.

XSS is confirmed by firing JS in the page. A leaked key is confirmed by calling the vendor. Blind SSRF is confirmed by a callback on its own collector. Unproven candidates never become findings.

run_jsoob_checkreport_finding
03

It tests across identities.

It replays the same request as each saved account and diffs the responses. That diff is what turns a hunch into a confirmed IDOR — and it's the tedious step most testers quietly skip.

identity_saveauthz_matrixhttp_batch
04

It chains the leftovers.

Self-XSS is worthless. Login-CSRF is worthless. Together they're an account takeover. A scanner files both as informational and moves on — HackBot looks for the pair and drives it end to end.

chainingstate_mapreplay
How it runs

Point. Hunt. Report.

STEP 01

Open the target, hit the hotkey

Log in as you normally would. Press the HackBot hotkey on the page and say what to hunt — "find IDORs", or just "pentest this".

STEP 02

It works the app

Reads the JavaScript, maps the API surface, replays requests with your session, and pivots across every first-party host for as long as the hunt takes.

STEP 03

You get verified findings

Each confirmed bug lands with severity, reproduction and evidence. Anything risky or irreversible pauses for your approval first.

hackbot
⌘⇧K › pentest this
scope locked → app.target.com
identities → 3 saved
awaiting go…
✓ reading first-party JS… 2.4 MB
✓ mapped 138 routes · 4 roles
→ replaying across 3 identities…
● /api/v2/invoices/{id} diverges
✔ VERIFIED idor · CVSS 8.1 · HIGH
✓ report → findings/idor-9c41.md
⏸ paused: destructive step needs approval
Comparison

Not a scanner. Not a chat sidebar.

 Legacy scannersGeneric browser agentsHackBot
Authenticated, multi-step flowsFragile — recorded sessionsSometimesYour live tab
Verifies before reportingSignature match, high noiseNo security modelExecutes the proof
Chains low-severity primitivesNeverNeverDedicated module
Cross-identity authz diffingRare, manual setupNoauthz_matrix
Writes the reportRaw output dumpGeneric proseCVSS + repro
Where your session livesTheir cloudTheir cloud127.0.0.1
Nothing to hide

The most trusted security tool is the one you can read.

HackBot is source-available. Every prompt, every module, every tool call is yours to inspect and modify. It runs where you can see it — not in someone else's cloud.

Runs on 127.0.0.1

The bridge binds to localhost. Page content goes to the AI runtime you chose — session cookies, tokens and client data never leave your machine.

Read every prompt

Source-available means no black box. Audit exactly how each class is hunted and what counts as proof — then change it to match your own methodology.

No keys, no telemetry

Bring the CLI subscription you already pay for — no extra API keys, no per-token bill, and no usage analytics phoning home from your hunts.

Inspect the source on GitHubEvery hunt module and MCP tool, open to read before you buy.
View the repo →
Works with your stack

Drop it into the setup you already run.

HackBot ships no model of its own — it's the hands, your AI runtime is the brain. Pair it with the CLI you already pay for and point it at the program you're enrolled in.

AI runtimes
Claude CodeCodex CLICursorLocal / self-hosted
Bug bounty programs
HackerOneBugcrowdIntigritiYesWeHackYour own app
Setup

Hunting in about five minutes.

Checkout gives you instant access to the private repo and your licence key. Start the local bridge, load the extension, and press the hotkey on a target you're authorized to test.

Get your licence →
~/hackbot — zsh
# 1 · an AI runtime you already pay for
$ claude --version  ✓

# 2 · clone your private repo, start the bridge
$ git clone <your-repo> hackbot && cd hackbot
$ ./run.sh
  licence key › ••••-••••-••••  ✓
  bridge listening on 127.0.0.1  ✓

# 3 · load the extension, open an in-scope target
  ⌘⇧K › hunt idor
What's a hunt worth?

One verified chain pays for a year.

Drag the sliders to your own numbers. HackBot earns its keep two ways — the hours it gives back, and the findings a manual pass would have missed.

Estimate · assumes HackBot reclaims ~40% of testing time.
Estimated value / month
$6,304
time reclaimed plus findings you'd otherwise have left on the table.
= 31× the Team plan
Pricing

Start small. Scale to the whole team.

Every plan ships the full module set and the local bridge — self-hosted, with nothing leaving your machine. Pick the seat count that fits.

14-day money backNot for you? Full refund, no questions.
Cancel anytimeMonthly plans, no contract.
No API keysBring the CLI you already pay for.
Commercial licenceUse it for client & bounty work.
No lock-inSelf-hosted; your data stays yours.

Solo

$49/mo
  • 1 operator seat
  • All 12 hunt modules
  • Local bridge & findings store
  • Community support
Start solo

Team

Popular
$199/mo
  • Up to 5 operator seats
  • Shared findings & program scopes
  • Approval workflow & audit log
  • Priority support
Start team

Enterprise

Custom
  • Unlimited seats & SSO
  • Self-hosted collector & SIEM export
  • Custom modules & onboarding
  • Dedicated support & SLA
Contact sales

Authorized testing only · macOS, Linux or Windows (WSL) · Chrome or any Chromium browser

Early access

Be among the first researchers on HackBot.

HackBot is new, and the earliest adopters get more than a licence — founding pricing, a say in the roadmap, and a direct line to the people building it.

Founding price, locked

Lock today's rate for as long as your subscription stays active — even as we ship new modules and raise prices for everyone else.

Shape the roadmap

Early users help decide which bug classes, integrations and runtimes we build next. Your hunts tell us what to harden.

Direct line to the team

A private channel straight to the engineers building HackBot — real answers, not a ticket queue.

FAQ

Questions security teams actually ask.

Is this a scanner I point at a URL and walk away from?+

No — it's a researcher you supervise. You log in, scope it, and approve the risky steps. In exchange it goes where a scanner can't: behind auth, through multi-step flows, across identities and into chains. Once scoped, a deep hunt can run unattended for an hour or more.

Does my data leave my machine?+

No. The bridge runs on 127.0.0.1 and page content goes to the AI runtime you've configured — never ASecurity Global's servers. Session cookies, auth tokens and client data stay local, which is the point when you're testing under someone else's program rules.

Will it get my bug bounty account banned?+

It can, if you run it out of scope or ignore a program's automation rules. Many programs restrict automated scanning, cap request rates, or require you to flag tooling. Read the program policy first — HackBot drives requests fast enough to look like automation, because it is. Inside a program that allows it, it behaves like a careful manual tester with your session.

How is this different from prompting an AI coding agent myself?+

A generic agent can't see or drive your authenticated browser tab. HackBot is the missing half: browser and HTTP tooling (run_js, http_batch, authz_matrix, an out-of-band collector), a findings store, and modules that encode how to hunt each class properly. You're buying the harness and the method, not the model.

Can a malicious page hijack it? (prompt injection)+

Honestly, prompt injection is unsolved for every browser agent — a page can hide instructions no agent filters perfectly. HackBot's safeguard is you: anything risky or irreversible pauses for approval. Supervise it like a capable junior, not an unattended autopilot.

Which browsers and operating systems?+

Chrome or any Chromium browser (Brave, Edge, Arc) for the extension. The local bridge runs on macOS, Linux, or Windows via WSL. Firefox and Safari aren't supported yet.

Put HackBot on your session tonight.

The full module set and the local bridge, self-hosted on infrastructure you control.