HexBrain

U.S. Dept Of Defense · Report #1988560

Reflected xss on https://█████████

Validstatus
mediumseverity
28upvotes
2 Jun 2023disclosed

How it was found

Description: The domain ███ is vulnerable to reflective xss. By clicking the following link you will get an alert message: https://█████/sec.html?redirect=javascript:alert(document.cookie);//://██████/ The error occurs due to a flaw in the check that verifies the validity of the redirect URL. The function takes the value of the redirect parameter and checks if the portion after the first :// begins with any of the values in the array. This check does not include protocol checking, allowing us to prepend the value with javascript:. Then we can append a commented-out section at the end to ensure that the isSafeHost function returns True. This is the function that checks if it is valid:

function isSafeHost(uri) {
      var safeHosts = ['█████/', '███/', '████/', '██████████'];
      // Only consider localhost for local testing
      if (window.location.host.includes('localhost')) {
        safeHosts.push('localhost');
      }
      return safeHosts.find((host) => uri.slice(uri.indexOf('://') + 3).startsWith(host));
    }

At the end of the check the redirect parameter is used as follows:

window.location.href = rawRedirect;

References

Impact

  • Take over a user's account
  • Phish users
  • Show malicious content
  • Redirect users

System Host(s)

██████████

Affected Product(s) and Version(s)

CVE Numbers

Steps to Reproduce

Click on the following link: https://█████████/sec.html?redirect=javascript:alert(1);//://████/ You can change the alert(1) for your own payload

Suggested Mitigation/Remediation Actions

Do a check for protocol and make sure the host comes directly after this protocol.

This report was disclosed publicly on HackerOne and belongs to its author and the program. See the original