Básicamente, he encontrado una inyección XSS cambiando la carga útil con el encabezado X-Forwarded-Host
, ya que su valor se refleja en el documento y no está saneado.
Un ejemplo, esta es la fuente del documento:
<a href="http://[PAYLOAD]"></a>
Establecí X-Forwarded-Host
en foo"></a><script>alert(1)</script>
, y la alerta aparece automáticamente.
¿Existe un esquema de ataque detrás de este tipo de XSS?
Actualizar :
Ya que para explotar este tipo de XSS tengo que sacar provecho de la implementación de CORS, he encontrado esto:
GET /index.php HTTP/1.1
Host: example.org
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Origin: https://milkislyudxi.com
que devuelve esto:
HTTP/1.1 401 Unauthorized
Date: Sun, 15 Oct 2017 20:30:45 GMT
Content-Type: application/json; charset=UTF-8
Content-Length: 113
Connection: close
Set-Cookie: wfvt_3441637102=59e3c57552f99; expires=Sun, 15-Oct-2017 21:00:45 GMT; Max-Age=1800; path=/; secure; HttpOnly
X-Robots-Tag: noindex
Link: <https://example.org/>; rel="https://api.w.org/"
X-Content-Type-Options: nosniff
Access-Control-Expose-Headers: X-WP-Total, X-WP-TotalPages
Access-Control-Allow-Headers: Authorization, Content-Type
Access-Control-Allow-Origin: https://milkislyudxi.com
Access-Control-Allow-Methods: OPTIONS, GET, POST, PUT, PATCH, DELETE
Access-Control-Allow-Credentials: true
Vary: Origin
Strict-Transport-Security: max-age=15552000; includeSubDomains; preload
Server: cloudflare-nginx
CF-RAY: 3ae589bca9b44316-MXP
{"code":"rest_cannot_access","message":"Only authenticated users can access the REST API.","data":{"status":401}}
entonces, ¿esto es explotable?