This article is Day 19 of a bug bounty training course focusing on Cross-Site Request Forgery (CSRF) vulnerabilities and techniques to find, bypass, and chain them to account takeover. CSRF exploits the browser's automatic cookie inclusion behavior to force authenticated users into making unintended state-changing requests, and the article provides concrete methods for identifying CSRF-vulnerable endpoints, testing six token bypass techniques, understanding SameSite cookie protections, and building proof-of-concept exploits. Mastering CSRF discovery and exploitation is presented as a high-value bug bounty skill because CSRF findings, especially when chained to account takeover scenarios, commonly pay High to Critical severity across bug bounty programs.
- How CSRF Exploits Browser Cookie BehaviorCSRF works because browsers automatically include session cookies for a domain in every request to that domain, regardless of whether the request originates from the target domain or an attacker's page. The application cannot distinguish between an intentional request from the user and a forged request caused by an attacker's page, so without additional verification mechanisms like CSRF tokens or SameSite cookie restrictions, both types of requests are processed identically.
- Six CSRF Token Validation BypassesThe article outlines six techniques that bypass CSRF token validation: deleting the token entirely, submitting an empty token value, using another user's valid token, submitting a wrong-length token, reusing a previously used or expired token, and changing the request method from POST to GET. Success with any of these bypasses—indicated by a 200 response and action processing—constitutes a reportable CSRF token validation bypass. The method-switch bypass (POST to GET) is noted as particularly common in real-world bug bounty reports.
- Token Generated But Not Validated PatternThe article emphasizes a common vulnerability pattern where applications generate CSRF tokens and include them in forms, creating the appearance of protection, but fail to implement server-side validation that actually checks the token. This pattern passes cursory security reviews because the token is visibly present, yet any cross-origin request omitting the token will be accepted. The author's personal example demonstrates this: an email change endpoint had a token, but deleting it from the Burp request still resulted in 200 OK and successful email change.
- SameSite Cookie Protections and Their GapsSameSite=Strict never sends cookies on cross-origin requests, SameSite=Lax (Chrome's default) sends cookies on top-level GET navigation but not cross-origin POST, and SameSite=None sends cookies on all cross-origin requests if the Secure flag is set. Gaps in protection include applications using SameSite=None for CORS or embed scenarios, GET-based state changes vulnerable under Lax mode, subdomain XSS bypassing SameSite restrictions, and older browsers that ignore SameSite entirely.
- Building CSRF PoC Payloads for Multiple FormatsThe article provides templates for CSRF proof-of-concept payloads including basic POST form submission with auto-submit JavaScript, GET-based CSRF using image tags, and JSON body CSRF for APIs (which requires either CORS misconfiguration or the application accepting text/plain encoding). Each template demonstrates how to craft state-changing requests that execute silently when a victim visits an attacker-controlled page while authenticated to the target.
- Chaining CSRF to Account Takeover for High-Critical SeverityStandalone CSRF against low-impact actions like notification preferences is typically Low severity, but chaining CSRF to account settings endpoints enables High or Critical severity findings. Specific high-value chains include CSRF on email change (allowing password reset via verification email), CSRF on disabling 2FA (removing authentication factor), and CSRF on OAuth account linking (linking attacker's OAuth identity to victim's account). Email change chains directly to account takeover because the attacker can then receive password reset emails.
- Practical Testing with Burp Suite and DocumentationBurp Suite's built-in CSRF PoC generator automatically creates HTML forms replicating intercepted state-changing requests, eliminating manual HTML writing. The article emphasizes that effective CSRF reporting requires before/after screenshots showing victim account state before and after loading the PoC HTML, plus the PoC code itself. Testing must be done from a local HTTP server (localhost:8080) rather than file:// URLs because browsers block file:// CSRF, but proper cross-origin requests from localhost prove the attack works from attacker-controlled domains.
- Inconsistent CSRF Protection Reveals Bypass TargetsThe article notes that most applications have inconsistent CSRF protection across endpoints—some endpoints include tokens while others do not, some have SameSite cookies set correctly while others lack them. This inconsistency typically results from CSRF protection being added incrementally over time without systematic audit. The highest-value targets for CSRF testing are account settings endpoints (email change, password change without current password requirement, OAuth linking) that lack CSRF tokens entirely, as these directly enable account takeover.
Bottom line: CSRF vulnerabilities remain prevalent in 2026 because token protection is often incomplete or improperly validated server-side, making systematic testing of six token bypass techniques essential for bug bounty success. The highest-impact findings chain CSRF to account takeover through email change or 2FA disablement endpoints, and proper documentation using before/after screenshots with Burp-generated PoCs makes CSRF reports triageable and compelling for High to Critical severity payouts.
FREE
Part of the 60-Day Bug Bounty Mastery Course
🎯 What You’ll Master in Day 19
⏱️ 50 min read · 3 exercises
📋 CSRF Bug Bounty 2026 — Complete Guide
In Day 18 you found CSRF in OAuth flows via missing state parameters. Day 19 covers CSRF as a vulnerability class in its own right — the broader technique that OAuth CSRF is a specific instance of. Understanding CSRF deeply unlocks a finding category that appears in nearly every web application in the 60-Day Bug Bounty Mastery Course.
How CSRF Works and Why It Still Exists in 2026
CSRF exploits the browser’s automatic cookie inclusion behaviour. When a user is authenticated to target.com, every request their browser makes to target.com includes the session cookie — regardless of whether the request originates from target.com or from an attacker-controlled page. The application cannot distinguish between a request the user intentionally made and a request that an attacker’s page caused their browser to make. Without an additional verification mechanism (a CSRF token, or SameSite cookie restriction), the application processes both identically.
⏱️ Time: 12 minutes · Browser DevTools · in-scope target
Open DevTools → Network tab → check Preserve log
Step 2: Perform every state-changing action you can find:
– Update profile (name, email, phone)
– Change notification settings
– Update password (if current password not required)
– Add/remove 2FA
– Connect/disconnect third-party apps
– Change privacy settings
Step 3: For each request in the Network tab:
□ Is it GET or POST?
□ Does it include a CSRF token parameter?
□ What are the Cookie headers? Do they have SameSite set?
□ Does it accept JSON? Or form-encoded data?
Step 4: Create a shortlist of endpoints with:
– No visible CSRF token → high priority test
– CSRF token present → still test for validation bypass
– SameSite not set → no cookie-level protection
Step 5: For your highest-priority finding, write:
The endpoint URL, HTTP method, parameters,
and why it appears CSRF-vulnerable.
📸 Share your shortlist of potential CSRF endpoints in #day-19-csrf on Discord.
CSRF Token Bypass — 6 Techniques That Work
SameSite Cookies — Understanding the Gaps
SameSite cookie attributes are the modern browser-level CSRF defence. SameSite=Strict never sends cookies on cross-origin requests. SameSite=Lax (now Chrome’s default) sends cookies on top-level GET navigation but not on cross-origin POST. SameSite=None sends cookies on all cross-origin requests (requires Secure flag). The gaps: applications using SameSite=None (often for CORS or embed scenarios), GET-based state changes vulnerable under Lax, subdomains bypassing SameSite restrictions via XSS, and older browsers ignoring SameSite entirely.
⏱️ Time: 20 minutes · Free PortSwigger account
Step 2: Complete: “CSRF vulnerability with no defenses”
This confirms the baseline — no token, simple PoC works
Step 3: Complete: “CSRF where token validation depends on request method”
This demonstrates the method-switch bypass (#6 above)
Step 4: Complete: “CSRF where token is tied to non-session cookie”
This shows cookie-based CSRF token weaknesses
Step 5: For each completed lab, note:
– The specific bypass technique used
– The exact PoC HTML you submitted
– What the vulnerability enabled (email change, etc.)
Advanced (if time): “CSRF with broken token validation”
These labs cover every token bypass from the command block above
in an interactive environment with confirmed impact.
📸 Screenshot completed CSRF labs and share in #day-19-csrf on Discord.
Chaining CSRF to Account Takeover
Standalone CSRF against a low-impact action (changing notification preferences) is typically Low severity. CSRF against an account settings endpoint that enables account takeover is Critical. The highest-value chains: CSRF on email change → attacker receives verification email → resets password → account takeover. CSRF on disabling 2FA → removes authentication factor from victim’s account. CSRF on OAuth account linking → links attacker’s OAuth identity to victim’s account (the Day 18 attack applied without OAuth-specific bypass).
⏱️ Time: 12 minutes · Burp Suite · own test account only
📸 Screenshot your Burp-generated CSRF PoC and the before/after account state in #day-19-csrf on Discord. Tag #csrf2026
🧠 QUICK CHECK — Day 19
📚 Further Reading
- OAuth 2.0 Bug Bounty 2026 — Day 18 covers OAuth CSRF via missing state parameter — the specific CSRF variant in OAuth flows that chains to account takeover via account linking.
- Authentication Bypass Hub — The complete authentication bypass category covering CSRF, OAuth, JWT, and session management attacks with chaining examples.
- 60-Day Bug Bounty Mastery Course — The complete course hub — Day 19 CSRF is part of the authentication vulnerability phase covering Days 16-22.
- PortSwigger CSRF Labs — Six interactive CSRF labs covering all bypass techniques — the most effective hands-on practice for mastering CSRF exploitation and understanding every token validation weakness.
- OWASP CSRF Prevention Cheat Sheet — The definitive CSRF defence reference — understanding what correct implementation looks like helps identify exactly where implementations fall short during bug bounty testing.

