open-redirect

open-redirect is a skill for Claude Code, Codex from JustineDevs/premortem. It costs 33 tokens per session (2,930 once invoked), scanned C, a copy of open-redirect, Apache-2.0.

A security testing guide for open redirects, where a website sends users to a destination controlled by an input parameter or JavaScript. The trusted website can then be used as a convincing link before sending someone elsewhere.

In plain words
What is it for?
Use it to check URL parameters, form actions, HTTP redirects, and client-side navigation code for unsafe destination handling.
Why use it?
It helps find redirect flaws that can support phishing, token theft, cross-site request attacks, or other chained attacks.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one. Also seen: installed under .agents/ (shared by several agents).

Good fit Use it to check URL parameters, form actions, HTTP redirects, and client-side navigation code for unsafe destination handling.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/justinedevs/premortem/open-redirect
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add JustineDevs/premortem --skill open-redirect
Clone the repo
git clone --depth 1 https://github.com/JustineDevs/premortem

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for open-redirect

README.md
[![agentmods](https://agentmods.dev/badge/skills/justinedevs/premortem/open-redirect/github.svg)](https://agentmods.dev/skills/justinedevs/premortem/open-redirect)
Your own site
<a href="https://agentmods.dev/skills/justinedevs/premortem/open-redirect"><img src="https://agentmods.dev/badge/skills/justinedevs/premortem/open-redirect/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for open-redirect

Your own site · 80×15
<a href="https://agentmods.dev/skills/justinedevs/premortem/open-redirect"><img src="https://agentmods.dev/badge/skills/justinedevs/premortem/open-redirect.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 33 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,930 The whole file, excluding the scripts and references it only reads on demand.
Security scan C 2 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin 100% copy Near-identical to another mod in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00033 $0.02930
Opus 5 $0.00016 $0.01465
Sonnet 5 $0.00007 $0.00586
Haiku 4.5 $0.00003 $0.00293

Measured 6d ago against content hash ff08ad872fa5, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-10, from the pricing page.

Security

Grade C, and why

open-redirect scanned grade C with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Cloud metadata endpointhighServer-side request forgery

One request to 169.254.169.254 can return temporary IAM credentials.

# attacker.com returns 302 → http://169.254.169.254/

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

Not all HTTP clients follow cross-protocol redirects, but `curl` (default) and some libraries do.
Origin

This is a copy

100% identical to open-redirect — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.

.agents/skills/open-redirect/SKILL.md · 381 lines

How it starts

The opening of the file, as written. The whole thing — 381 lines — stays where its author put it; the contents beside it link to each section on GitHub.

SKILL: Open Redirect — Expert Attack Playbook

AI LOAD INSTRUCTION: Open redirect techniques. Covers parameter-based redirects, JavaScript sinks, filter bypass, and chaining with phishing, CSRF Referer bypass, OAuth token theft, and SSRF. Often underrated but critical for phishing and as a building block in multi-step exploit chains.

1. CORE CONCEPT

Open redirect occurs when an application redirects users to a URL derived from user input without validation. The trusted domain acts as a "launchpad" for phishing or token theft.

https://trusted.com/redirect?url=https://evil.com
→ User sees trusted.com in the link → clicks → lands on evil.com

2. FINDING REDIRECT PARAMETERS

Common Parameter Names

?url=           ?redirect=      ?next=          ?dest=
?destination=   ?redir=         ?return=        ?returnUrl=
?go=            ?forward=       ?target=        ?out=
?continue=      ?link=          ?view=          ?to=
?ref=           ?callback=      ?path=          ?rurl=

Server-Side Sinks

HTTP 301/302 Location header
PHP: header("Location: $input")
Python: redirect(input)
Java: response.sendRedirect(input)
Node: res.redirect(input)

Client-Side (JavaScript) Sinks

window.location = input
window.location.href = input
window.location.replace(input)
window.open(input)
document.location = input

3. FILTER BYPASS TECHNIQUES

Validation Bypass
Checks if URL starts with / //evil.com (protocol-relative)
Checks domain contains trusted.com evil.com?trusted.com or trusted.com.evil.com
Blocks http:// //evil.com, https://evil.com, \/\/evil.com
Checks URL starts with https://trusted.com https://[email protected] (userinfo)
Regex ^/[^/] (relative only) /\evil.com (backslash treated as path in some browsers)
Django endswith('target.com') http://evil.com/www.target.com — URL path ends with target domain
Whitelist by domain suffix Subdomain takeover on *.trusted.com

Read the full file on GitHub · 381 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 6d ago First seen · 381 lines · 33 tokens per session scan C ff08ad872fa5

Subscribe to this mod's changes

open-redirect is a skill published in the GitHub repository JustineDevs/premortem (2 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 33 tokens to every session and 2,930 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it C with 2 findings (cloud metadata endpoint, makes network calls). It is 100% identical to open-redirect, differing in 0 lines, and is treated as a copy.

Related

Other skills, from other repositories

opencli-autofix

Automatically fix broken OpenCLI adapters when commands fail. Load this skill when an opencli command fails — it guides you through collecting a trace artifact, patching the adapter, retrying, and filing an upstream GitHub issue after a verified fix. Works with any AI agent.

jackwener/OpenCLI · 61 tokens

webapp-testing

Start/reuse a local app, wait for readiness, inspect rendered state/console/network, act from observed selectors, and verify with evidence.

Hmbown/CodeWhale · 32 tokens

agent-browser

Browser automation via Chrome/Chromium CDP — open, snapshot, click, screenshot. For testing web apps, mobile layouts, and automated interactions without Playwright/Puppeteer.

x-cmd/x-cmd · 39 tokens

harbor-daytona

Use Harbor's Daytona sandbox platform for computer use — creating sandboxes, taking screenshots, sending mouse/keyboard input, and building agent loops. Use when the user wants to interact with a GUI, automate a desktop, do computer use, control a browser visually, or run Claude computer use against a Daytona sandbox.

av/harbor · 67 tokens

web-scraper

Scrape, crawl, and extract data from websites. Use when users ask to scrape web pages, extract content, crawl websites, or collect data from the internet.

shobcoder/shob · 38 tokens

BrowserBash Browser Automation

BrowserBash is a vendor-independent, natural-language browser automation CLI. Drive a real browser from plain-English objectives or committable Markdown tests, run on local Chrome, CDP/Playwright MCP, Browserbase, LambdaTest, or BrowserStack, and stream NDJSON results with CI exit codes — using free local Ollama…

PramodDutta/qaskills · 79 tokens