
Pages vulnerable to cross-site request forgery
Reported by Dimitris Apostolou | February 9th, 2014 @ 11:42 PM
Vulnerable pages:
GET: https://gpgtools.org/
GET: https://gpgtools.org/donate.html
GET: https://gpgtools.org/gpgsuite.html
GET: https://gpgtools.org/js/vendor/jquery-1.9.1.min.js
Description:
A cross-site request forgery is an attack that involves forcing a
victim to send an HTTP request to a target destination without
their knowledge or intent in order to perform an action as the
victim. The underlying cause is application functionality using
predictable URL/form actions in a repeatable way. The nature of the
attack is that CSRF exploits the trust that a web site has for a
user. By contrast, cross-site scripting (XSS) exploits the trust
that a user has for a web site. Like XSS, CSRF attacks are not
necessarily cross-site, but they can be. Cross-site request forgery
is also known as CSRF, XSRF, one-click attack, session riding,
confused deputy, and sea surf.
CSRF attacks are effective in a number of situations,
including:
* The victim has an active session on the target site. * The victim
is authenticated via HTTP auth on the target site. * The victim is
on the same local network as the target site.
CSRF has primarily been used to perform an action against a target site using the victim's privileges, but recent techniques have been discovered to disclose information by gaining access to the response. The risk of information disclosure is dramatically increased when the target site is vulnerable to XSS, because XSS can be used as a platform for CSRF, allowing the attack to operate within the bounds of the same-origin policy.
Solution:
Phase: Architecture and Design
Use a vetted library or framework that does not allow this weakness
to occur or provides constructs that make this weakness easier to
avoid.
For example, use anti-CSRF packages such as the OWASP
CSRFGuard.
Phase: Implementation
Ensure that your application is free of cross-site scripting
issues, because most CSRF defenses can be bypassed using
attacker-controlled script.
Phase: Architecture and Design
Generate a unique nonce for each form, place the nonce into the
form, and verify the nonce upon receipt of the form. Be sure that
the nonce is not predictable (CWE-330).
Note that this can be bypassed using XSS.
Identify especially dangerous operations. When the user performs
a dangerous operation, send a separate confirmation request to
ensure that the user intended to perform that operation.
Note that this can be bypassed using XSS.
Use the ESAPI Session Management control.
This control includes a component for CSRF.
Do not use the GET method for any request that triggers a state change.
Phase: Implementation
Check the HTTP Referer header to see if the request originated from
an expected page. This could break legitimate functionality,
because users or proxies may have disabled sending the Referer for
privacy reasons.
No comments found
Please Sign in or create a free account to add a new ticket.
With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.
Create your profile
Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป
Organize issues related to http://gpgtools.org