A penetration tester is testing a web application for Cross-Site Request Forgery (CSRF) vulnerabilities. What condition must exist for a CSRF attack to be possible?
Select an answer to reveal the explanation.
Short Explanation and Infographic
Here's the deal — b is correct because CSRF exploits the fact that browsers automatically include session cookies in cross-origin requests; if the application doesn't require an unpredictable CSRF token, an attacker can trick the victim's browser into making authenticated state-changing requests on their behalf. A is wrong because CSRF can occur over HTTPS; the vulnerability is about authentication credentials being auto-sent, not transport encryption.
Full explanation below image
Full Explanation
B is correct because CSRF exploits the fact that browsers automatically include session cookies in cross-origin requests; if the application doesn't require an unpredictable CSRF token, an attacker can trick the victim's browser into making authenticated state-changing requests on their behalf. A is wrong because CSRF can occur over HTTPS; the vulnerability is about authentication credentials being auto-sent, not transport encryption. C is wrong because SQL injection is a separate vulnerability class; CSRF does not require database vulnerabilities. D is wrong because browser history is irrelevant to CSRF; the attack only requires the victim to have an active session and be tricked into loading attacker-controlled content.