Usa la vulnerabilità XSS in iframe per compromettere il genitore?

3

Ho un sito, chiamiamolo parent.com , che incorpora un plugin di terze parti da child.com in un iframe. Ho trovato una vulnerabilità XSS su child.com .

La pagina incorporata da child.com contiene un modulo che invia POST a un'altra pagina nello stesso dominio. Posso sfruttare la vulnerabilità inviando il modulo. Intercetto la richiesta POST con Burp e inserisco il mio carico. Il carico utile viene quindi eseguito.

Il mio problema è che il carico utile viene eseguito all'interno dell'iframe sul dominio child.com . Il mio obiettivo è compromettere parent.com (per vincere una taglia del bug). È possibile utilizzare questa vulnerabilità per ottenerlo in qualche modo? Ad esempio, posso in qualche modo rendere il modulo inviato a parent.com invece?

    
posta SecurityQuy 05.11.2018 - 13:11
fonte

2 risposte

2

Gli iframe hanno un tag speciale chiamato "sandbox" che imposta come trattare il contenuto dell'iframe. Usando quel tag, puoi impostare in modo granulare le autorizzazioni per consentire a un iframe di interagire con il genitore. Normalmente gli iframe sono piuttosto restrittivi su come possono influenzare un genitore quando vengono caricati da un dominio diverso, ma se si vedono cose come: allow-same-origin, allow-scripts, allow-top-navigation, ecc, allora potrebbe esserci un caso specifico modi per sfruttarlo.

[modifica] La maggior parte dei casi di attacchi XSS iframe in realtà non implicano l'iniezione di codice arbitrario nel sito web principale. Invece sono in genere uno dei seguenti:

  1. Prendi il controllo del sito web figlio e lo sostituisci con qualcosa di simile a un falso modulo di accesso per far credere alle persone che stanno accedendo al sito web principale per accedere al contenuto, quando si sta davvero effettuando il phishing delle proprie credenziali.
  2. Distribuisci un servizio "utile" che altri programmatori incorporano nei loro siti che effettivamente usi per riprodurre informazioni private. Poi preghi sulla fiducia delle persone di questi altri siti web per convincerli a darti qualcosa di utile. Ad esempio: un calcolatore della parentesi tributaria che richiede il tuo nome, indirizzo e SSN.
  3. Invece di parent.com, crei un malvagio sito gemello chiamato parents.com che contiene parent.com all'interno di un iframe in modo che si comporti proprio come il vero sito, ma la tua versione del sito web sta raccogliendo il privato dell'utente finale informazioni.

Quindi, il modo più probabile per te di essere in grado di sfruttare questo scenario sarebbe se potessi sostituire il modulo con qualcosa che assomiglia a un modulo di accesso per parent.com e post non su parent.com, ma a qualcosa che in realtà controlli per rubare le credenziali dell'utente.

    
risposta data 05.11.2018 - 21:24
fonte
1

Non è probabile che ciò non sia possibile in quanto gli iframe sono restrittivi per natura. Ricorda che tutto ciò che è un iFrame, è una semplice richiesta GET al sito inclusa come sorgente, quindi la si incorpora nel sito principale e consente ulteriori interazioni con esso. Hai descritto una vulnerabilità POST-XSS all'interno del sito figlio, che sarebbe molto difficile da attivare automaticamente in un iframe poiché è ancora una volta, solo una richiesta GET.

In teoria si potrebbe ovviamente trovare un exploit del browser che consente di eseguire javascript da un sito figlio a un sito padre, ma una cosa del genere è molto più preziosa di qualsiasi taglia sul sito padre. Inoltre, probabilmente non funzionerà ancora nel tuo caso, poiché di nuovo hai solo POST-XSS.

È utile notare che sebbene gli iFrame siano restrittivi, come sottolineato da altri utenti e da me stesso, esiste un'eccezione per l'URI javascript: . Prendi ad esempio un iframe in questo modo:

<iframe src="javascript:alert(0)"></iframe>

Se si trovava su un sito Web, non solo riceverebbe un avviso, ma sarebbe un avviso sul "sito principale" poiché tecnicamente non esiste un sito secondario. Questo è un comportamento interessante e dimostra che iFrame non sono sempre così ' restrittivi '.

    
risposta data 06.11.2018 - 22:31
fonte

Leggi altre domande sui tag