Le vulnerabilità XSS presenti nelle librerie js di terze parti possono essere utilizzate per attaccare l'app che utilizza lib?

1

Sto usando varie librerie di terze parti come cordova.js, jquery, jquery mobile, mobilizer e così via, in un'app per Android. Queste librerie hanno vari vettori XSS attraverso l'uso insicuro di eval, settimeout, inner / outerhtml e così via. Tuttavia, i moduli che presentano questi problemi non vengono utilizzati / richiamati nell'applicazione.

Considerando lo scenario precedente, esiste un modo in cui un utente malintenzionato può sfruttare la mia app in base ai vettori XSS nelle librerie di terze parti, anche se i moduli vulnerabili non vengono utilizzati nella mia app?

    
posta Ocelot 12.03.2013 - 07:39
fonte

2 risposte

2

Possibile, ma improbabile. Perché?

Consentitemi di darvi alcune informazioni di base. Ho visto persone ossessionare su presunte "vulnerabilità XSS" in jQuery e molte altre librerie, ecco un esempio:

$('#inputElement').keyup(function () {
   $('#someDiv').html($(this).val())
});

Alcuni sostengono che questo codice è vulnerabile a XSS, il che non è vero. Sì, puoi poter scrivere JavaScript nel campo di input e farlo eseguire (ad esempio <script>alert(document.cookie)</script ), ma allora? Puoi già farlo con qualsiasi applicazione che ti dà la console JavaScript (Firebug), diamine, puoi anche farlo con Greasemonkey.

Può essere considerata una vulnerabilità XSS solo se i dati esterni all'app vengono utilizzati all'interno della tua app ingannando l'utente in URL dannosi o inviando un modulo appositamente predisposto. Ecco un esempio:

$(document).ready(function () {
   $('#someDiv').html(window.location.hash)
});

Ora questo è vulnerabile a XSS, un utente malintenzionato potrebbe creare il seguente URL

http://example.com/search/searchQuery+<script>alert(document.cookie)</script>

O anche utilizzare alcuni servizi di abbreviazione URL per rendere l'attacco un po 'più offuscato. Il punto è che in questi casi devi preoccuparti.

Se il lato client della tua webapp utilizza dati dall'esterno ed è possibile che l'utente legittimo non abbia il controllo su di esso (come nel caso precedente), allora devi preoccuparti.

Un altro esempio che utilizza le librerie fallback di History API, come jQuery BBQ (analizza window.location.hash ) che potrebbe essere vulnerabile e in qualche modo consente di eseguire il codice nell'URL.

Ricorda che questa risposta è strettamente pertinente alla tua domanda; Attacchi XSS relativi alle librerie JavaScript.

    
risposta data 12.03.2013 - 09:20
fonte
0

Sì, sicuramente. Ecco un esempio recente di Yahoo, in cui una vecchia libreria JS ha causato un XSS link

    
risposta data 13.03.2013 - 14:02
fonte

Leggi altre domande sui tag