portswigger/http-terminator/simplify-vector

Claude Code and agent skill by portswigger/http-terminator

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

simplify/minimise a HTTP request to identify the minimum requirements to trigger the behaviour

Install

npx vskill@latest install portswigger/http-terminator/simplify-vector

SKILL.md

Request Simplification

Iteratively simplifies an HTTP request to find the minimal trigger for a behavior.

How to use

  1. Copy the template simplify-vector.py
  2. Set request_to_simplify to the full request that triggers the behavior
  3. Set success_fingerprint to a string that appears in the response ONLY when the behavior triggers
  4. Run via turbo simulator MCP

Configuration

python
request_to_simplify = '''POST /path HTTP/1.1\r\nHost: example.com\r\n...\r\n\r\n'''
success_fingerprint = 'unique-string-in-triggered-response'

Choosing a good fingerprint

The fingerprint must be UNIQUE to the triggered behavior. Bad fingerprints cause over-simplification.

For desync/response concatenation:

  • Use text from the FIRST response (e.g., Apache Server from a front-end 400 error)
  • Or use something that only appears when both responses are concatenated

Avoid:

  • Strings that appear in normal responses (e.g., domain names, app names)
  • Generic error messages that appear in multiple error types

Simplification phases

  1. Normalise protocol - if HTTP/1.0 or HTTP/2, tries changing to HTTP/1.1
  2. Try GET method - if not already GET, tries changing to GET
  3. Simplify path - tries changing path to /
  4. Remove headers - tries removing each header (except Host)
  5. Try canonical values - for each surviving header, tries replacing its value with x, then a normal value for that header; keeps the simplest value that still triggers. Retried (default 3x) so a flaky miss doesn't wrongly mark a value as essential. This reveals when an unusual-looking value (e.g. Content-Type: multipart/byteranges) isn't actually required — something deletion alone can never discover.
  6. Remove words - for remaining headers, tries removing words from values
  7. Remove characters - tries removing individual characters from values

Output

  • kept:* - simplification was kept (fingerprint still present)
  • reverted:* - simplification was reverted (fingerprint disappeared)
  • FINAL-MINIMAL - the minimal trigger

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
125
Repository forks
13
7-day trend score
0

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/portswigger/http-terminator/simplify-vector/badge)](https://verified-skill.com/skills/portswigger/http-terminator/simplify-vector)

Something wrong with this skill or its page? Tell us.