Sensitive information sent via URL parameters
Description
The system sends sensitive information via URL parameters using the GET method. These parameters are:
- Stored in clear text in the browser history.
- Sent to external sites via the referrer HTTP header.
- Sent to external sites via the search bar if the browser interprets the URL as a query.
- Visible to scripts running on the browser that may belong to third-parties.
Impact
Obtain sensitive information from application URLs.
Recommendation
Guarantee that the sessions ID are sent through secure methods (POST) or obtain the cookies session.
Threat
Anonymous attacker from adjacent network performing a sniffing attack.
Expected Remediation Time
⌚ 60 minutes.
Score
Default score using CVSS 3.1. It may change depending on the context of the vulnerability.
Base
- Attack vector: L
- Attack complexity: L
- Privileges required: N
- User interaction: R
- Scope: U
- Confidentiality: H
- Integrity: N
- Availability: N
Temporal
- Exploit code madurity: X
- Remediation level: X
- Report confidence: X
Result
- Vector string: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N/E:X/RL:X/RC:X
- Score:
- Base: 5.5
- Temporal: 5.5
- Severity:
- Base: Medium
- Temporal: Medium
Code Examples
Compliant code
The session should be restored using cookies and not other insecure methods
// Get cookie to restore session credentials
function restoreSession(cname){
userCookie = getcookies(cname);
if(userCookie){
restoreSession(user);
}
}
Non compliant code
The user Id is sent through the url parameters
// Get cookie to restore session credentials
function restoreSession(cname){
userCredentials = fetch('myurl/${userId}')
restoreSession(userCredentials)
}
Requirements
Search for vulnerabilities in your apps for free with our automated security testing! Start your 21-day free trial and discover the benefits of our Continuous Hacking Machine Plan. If you prefer a full service that includes the expertise of our ethical hackers, don't hesitate to contact us for our Continuous Hacking Squad Plan.