Low Impact
Flash-Based Cross-Site Request Forgery (Low Impact)
Overview of the Vulnerability
Cross-Site Request Forgery (CSRF) occurs when requests to the application are submitted on behalf of an authenticated user without their knowledge via crafted, malicious code which can be in the form of a link the user clicks. The application is unable to distinguish between the malicious request and a legitimate request from the user.
A low impact flash-based CSRF is possible for this application, allowing an attacker to submit requests to the application for non-sensitive actions on behalf of an authenticated user. Additionally, the attacker needs to socially engineer the user to click on a link, or paste the malicious code into the user’s browser. If successful, the code will execute within that user’s browser in the context of this domain.
Business Impact
CSRF could lead to data theft through the attacker’s ability to manipulate data through their access to the application, and their ability to interact with other users, including performing other malicious attacks which would appear to originate from a legitimate user. These malicious actions could also result in reputational damage for the business through the impact to customers’ trust.
Steps to Reproduce
Enable a HTTP interception proxy, such as Burp Suite or OWASP ZAP
Modify the request with the following CSRF POC code which uses a
.SWFfile:
{{CSRF POC}}and forward the request to the endpoint:
{{request}}Navigate to the following URL and observe within the HTTP interception proxy that the action taken by the CSRF POC code was successful: {{URL}}
Proof of Concept (PoC)
Please view the proof of concept CSRF HTML code below:
{{screenshot}}
Please view the evidence showing an action that is vulnerable to CSRF below:
{{screenshot}}
Recommendation(s)
There is no single technique to stop CSRF from occurring. However, implementing the right combination of defensive measures within the application will prevent and limit the impact of CSRF. Some best practices include the following:
All state changing requests should include CSRF tokens which are validated on the backend of the application. This token should be tied to the user’s session, strictly validated before an action is executed, and be unpredictable with high entropy.
Ensure that the framework is using built-in or existing CSRF prevention protections that exist within most major frameworks
Use the
SameSitecookie attribute, which can have the values ofLax,Strict, orNone. For example:
For more information, please see the Open Web Application Security Project (OWASP) guides located at:
Last updated