Che cos'è uno schema di sfruttamento in questo attacco XSS? [duplicare]

0

Fondamentalmente, ho trovato un'iniezione XSS cambiando il carico utile con l'intestazione X-Forwarded-Host , poiché il suo valore si riflette nel documento e non è sterilizzato.

Un esempio, questa è la fonte del documento:

<a href="http://[PAYLOAD]"></a>

Ho impostato X-Forwarded-Host su foo"></a><script>alert(1)</script> e l'avviso viene immediatamente visualizzato.

Esiste uno schema di attacco dietro questo tipo di XSS?

Aggiorna :

Poiché per sfruttare questo tipo di XSS devo approfittare dell'implementazione di CORS, ho trovato questo:

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

che restituisce questo:

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}}

quindi, è sfruttabile?

    
posta WayneXMayersX 23.10.2017 - 21:35
fonte

1 risposta

1

L'XSS riflesso dalle intestazioni HTTP di solito non è sfruttabile. Devi ingannare la vittima per inviare una richiesta con un'intestazione malevola, e come faresti? Non puoi creare un link malevolo come faresti se il riflesso proviene dall'URL. C'è il rischio che l'unica persona che puoi possedere sia tu stesso.

Tuttavia, vedo ancora due possibilità:

  • XSS memorizzato, ad esempio se il valore dell'intestazione viene visualizzato da qualcun altro. Questo sarebbe il caso per es. un registro.
  • Se, e questo è un grande se, il sito ha una politica CORS ( Access-Control-Allow-Headers ) che consente di impostare quell'intestazione, potresti indurre la vittima a visitare un sito sotto il tuo controllo che fa una chiamata XHR al vulnerabile sito.
risposta data 23.10.2017 - 22:09
fonte

Leggi altre domande sui tag