Server-Side Request Forgery (elmah MVC)
Summary#
Invicti detected a Server-Side Request Forgery based on pattern matching and confirmed the vulnerability using specific ELMAH related requests.
This vulnerability can cause highly sensitive data leaks on current sessions.
Impact#
Server-Side Request Forgery allows an attacker to make local and/or remote network requests while masquerading as the target server.
Elmah is a powerful tool that helps developers debug and resolve problems in their applications. However, it is configured improperly on target website, and that allows attackers to gain information about requests and responses to the application. An attacker can obtain information such as:
- Session cookies
- Session state
- Query string and post variables
- Physical path of the requested file
Remediation#
- Where possible, do not use users' input for URLs.
- If you definitely need dynamic URLs, use whitelisting. Make a list of valid, accepted URLs and do not accept other URLs.
- Ensure that you only accept URLs those are located on the trusted domains.
In addition to above, apply the following changes in your
web.config
file to disable remote access to the Elmah:<appSettings>
<add key="elmah.mvc.requiresAuthentication" value="true" />
<add key="elmah.mvc.allowedRoles" value="Admin" />
</appSettings>