Utilizzo degli URI di dati per eseguire XSS nei tag di ancoraggio: vulnerabilità? [duplicare]

2

Ho esaminato alcuni problemi relativi all'XSS. In tal modo, mi sono imbattuto in alcune checklist di tipo "XSS Filter Evasion" che dimostrano il presunto XSS tramite gli URI di dati. Ad esempio:

  • L'ultima riga di: link
  • Oppure questo rapporto sulla sicurezza: link
  • O questo post del blog: link

È ovvio che facendo clic su un collegamento (come quello seguente) si potrebbe generare un avviso nel browser.

<a href="data:text/html;base64,PHNjcmlwdD5hbGVydCgiSGVsbG8iKTs8L3NjcmlwdD4=">test</a>

Tuttavia, questo codice (per quanto posso dire) non verrà eseguito sulla stessa origine della pagina che contiene il tag di ancoraggio.

Perché le persone chiamano questo vettore XSS? C'è qualcosa che mi manca che rende questo un problema?

    
posta Julio 21.07.2017 - 09:10
fonte

1 risposta

1

However, this code (as far as I can tell) will not be executed on the same origin as the page that contains the anchor tag.

A luglio 2017, è vero per Google Chrome ma non per Mozilla Firefox (e probabilmente per altri browser che non sono basati su WebKit). Tuttavia, Mozilla sta attualmente lavorando per modificare questo comportamento.

Quindi, un clic su questo link in Firefox avviserà il dominio corrente, rendendolo una vulnerabilità XSS di grande impatto:

<a href="data:text/html,<script>alert(document.domain)</script>">click</a>

Cito uno sviluppatore di questo bug report :

In Firefox data: URIs inherit the security context of the page from which they're opened, just like javascript: URIs. This includes access to cookies. This is a well-known aspect of how we handle data: URIs. Up until relatively recently the HTML spec aligned with what we did. This changed, and now we are slowly working to change this behaviour (but that change is a fundamental one and doesn't happen overnight).

Ma anche senza un'origine ereditata, dovresti evitare di consentire URI di dati forniti dall'utente in cui l'applicazione si aspetta un normale collegamento Web, come spiegato in questa discussione .

    
risposta data 21.07.2017 - 12:52
fonte

Leggi altre domande sui tag