Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Une commande directe contourne le prompt de vérification. Examinez la source avant de l'exécuter.
"Remember me" or "remember password" functionality allows users to stay logged in across browser sessions. This test examines whether this functionality is implemented securely. Insecure implementations may store credentials in cleartext, use predictable tokens, or create persistent sessions that are vulnerable to theft or abuse.
What to Check
Remember Me Implementation
Token generation security
Token storage method
Token expiration
Token scope (device/browser specific)
Credential storage
Token revocation capability
Common Vulnerabilities
Vulnerability
Description
Cleartext credentials
Password stored in cookie
Predictable tokens
Sequential or guessable values
No expiration
Tokens never expire
Cross-device usage
Same token works everywhere
No revocation
Cannot invalidate tokens
How to Test
Step 1: Analyze Remember Me Token
# Login with remember me enabled
response=$(curl -s -X POST "https://target.com/login" \
-H "Content-Type: application/json" \
-d '{"username":"testuser","password":"password","remember_me":true}' \
-c cookies.txt \
-v 2>&1)
# Examine cookiescat cookies.txt
# Look for remember me specific cookies
grep -i "remember\|persistent\|token" cookies.txt
# Check cookie attributes
curl -sI "https://target.com/login" -X POST \
-d '{"username":"testuser","password":"password","remember_me":true}' | \
grep -i
"set-cookie"
Step 2: Check for Cleartext Credentials
# Decode cookie values# If base64 encodedecho"cookie_value_here" | base64 -d
# Check for username/password in cookie
cookie_value="your_remember_me_cookie"# Try base64 decodeecho"$cookie_value" | base64 -d 2>/dev/null
# Try URL decodeecho"$cookie_value" | python3 -c "import sys, urllib.parse; print(urllib.parse.unquote(sys.stdin.read()))"# Check if value contains readable textecho"$cookie_value" | xxd
Step 3: Test Token Predictability
#!/bin/bash# Collect multiple tokens to analyze patterns
tokens=()
for i in {1..10}; do# Create new account or use existing
token=$(curl -s -X POST "https://target.com/login" \
-H "Content-Type: application/json" \
-d '{"username":"testuser","password":"password","remember_me":true}' \
-c - | grep -i "remember" | awk '{print $7}')
tokens+=("$token")
echo"Token $i: $token"# Logout between requests
curl -s "https://target.com/logout" > /dev/null
sleep 1
done# Analyze tokens for patternsecho""echo"=== Token Analysis ==="echo"Lengths: ${#tokens[@]} tokens collected"# Check for sequential patterns# Check for timestamp patterns# Check for username inclusion
Step 4: Test Token Expiration
# Login and get remember me token
curl -s -X POST "https://target.com/login" \
-d '{"username":"testuser","password":"password","remember_me":true}' \
-c cookies.txt
# Get the remember me cookie
remember_token=$(grep -i "remember" cookies.txt | awk '{print $7}')
# Test if token works
curl -s "https://target.com/dashboard" \
-H "Cookie: remember_me=$remember_token" \
-w "\nStatus: %{http_code}"# Test after simulated time (if possible)# Or wait and test periodically# Check if old tokens still work# Store tokens from previous tests and try them
Step 5: Test Cross-Device Token Usage
# Login and get token
token=$(curl -s -X POST "https://target.com/login" \
-d '{"username":"testuser","password":"password","remember_me":true}' \
-c - | grep -i "remember" | awk '{print $7}')
# Try token from different User-Agent
curl -s "https://target.com/dashboard" \
-H "Cookie: remember_me=$token" \
-H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" \
-w "\nStatus: %{http_code}"
curl -s "https://target.com/dashboard" \
-H "Cookie: remember_me=$token" \
-H "User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X)" \
-w "\nStatus: %{http_code}"# Try from different simulated IP
curl -s "https://target.com/dashboard" \
-H "Cookie: remember_me=$token" \
-H "X-Forwarded-For: 1.2.3.4" \
-w "\nStatus: %{http_code}"
Step 6: Test Token Revocation
# Get remember me token
token=$(curl -s -X POST "https://target.com/login" \
-d '{"username":"testuser","password":"password","remember_me":true}' \
-c - | grep -i "remember" | awk '{print $7}')
# Verify token works
curl -s "https://target.com/dashboard" \
-H "Cookie: remember_me=$token" \
-w "\nStatus: %{http_code}" > /dev/null
echo"Before logout: Token works"# Logout
curl -s "https://target.com/logout" \
-H "Cookie: remember_me=$token"# Try token again
response=$(curl -s "https://target.com/dashboard" \
-H "Cookie: remember_me=$token" \
-w "\nStatus: %{http_code}")
ifecho"$response" | grep -q "200"; thenecho"[VULN] Token still works after logout!"elseecho"[OK] Token properly invalidated after logout"fi# Test after password change# Token should be invalidated after password change