Che cosa può fare un file javascript iniettato localmente?

1

Stavo facendo del pentesting sul mio piccolo progetto del forum. Ho scoperto che è possibile iniettare un file javascript attraverso un piccolo buco di sicurezza. Quindi, in sostanza, l'hacker può iniettare qualsiasi codice javascript che desidera. Ora, al contrario di noti problemi di sicurezza, questo hack funziona solo dal lato degli hacker, perché non ci sono dati mostrati ad altri utenti, ad eccezione dello stesso hacker.

L'hack funziona nella pagina delle impostazioni utente in cui ogni utente ha accesso solo alle proprie impostazioni. Quindi un avviso sarebbe mostrato solo sul computer degli hacker.

Ho già risolto questo problema, ma:

Sono ancora curioso di sapere se questo hack potrebbe essere pericoloso per il progetto stesso. Può un hacker fare più danni di quello che penso?

    
posta dkb 22.04.2018 - 21:57
fonte

2 risposte

0

Hai una protezione CSRF sugli accessi? In caso contrario, proporrei il seguente:

  • Crea un account e memorizza il carico utile XSS lì.
  • Fai in modo che la vittima faccia clic su un link che:
    • Li registra nell'account precedente utilizzando CSRF.
    • Reindirizza alla pagina con l'XSS memorizzato.
  • Il payload registra la vittima con una richiesta AJAX e può modificare la pagina come meglio credi, ad es. visualizza un modulo di accesso.
  • Voilà, stai eseguendo un codice JavaScript arbitrario e le password del registro delle chiavi o qualsiasi altra cosa.

Certo, questo richiede molta interazione da parte dell'utente e un'altra vulnerabilità al lavoro. Ma nelle mie esperienze, se esiste una vulnerabilità XSS, può essere sfruttata a prescindere da dove si trova.

    
risposta data 23.04.2018 - 10:50
fonte
1

Se sei veramente sicuro che il codice iniettato possa essere eseguito solo dalla stessa persona che l'ha iniettato, allora potrebbe effettivamente essere classificato come "auto-XSS", come menzionato in un commento a la tua domanda. Apparentemente per sfruttare l'attacco di un hacker che deve fare affidamento sull'ingegneria sociale, cercando di ingannare gli altri utenti per iniettare il codice da sé ed eseguirlo.

MODIFICATO PER AGGIUNGERE LO SCENARIO CSRF

La risposta di Anders suggerisce uno scenario CSRF ma non sono d'accordo con questo (e non ho abbastanza reputazione per commentare ancora lì). Tuttavia mi sono appena reso conto che una vulnerabilità di CSRF può effettivamente aiutare l'aggressore a sfruttare il tuo XSS. Anders ha suggerito di utilizzare CSRF per accedere come utente malintenzionato e reindirizzare alla pagina precedentemente infetta. In questo modo ti troverai nell'esecuzione di js arbitrari, ma sei loggato come attaccante ed esegui js nella pagina privata dell'attaccante. Ciò sembra inutile per me. L'opzione apparentemente giusta sarebbe quella di utilizzare CSRF per iniettare il codice dannoso direttamente nella pagina della vittima. Funzionerebbe in questo modo:

  1. la vittima è attualmente loggata sul tuo sito web
  2. la vittima visita un sito Web dannoso che utilizza CSRF per iniettare l'XSS nella propria pagina privata (ad esempio una richiesta POST a un modulo che modifica le impostazioni del proprio profilo e inserisce js nel campo vulnerabile)
  3. la vittima visita la propria pagina privata e ... ora vi è iniettato js

Questo ovviamente richiede che il modulo sul tuo sito Web utilizzato per iniettare js sia vulnerabile a CSRF (ad esempio perché il modulo non richiede un token segreto nascosto), quindi un utente malintenzionato può costringere la vittima a fare una richiesta al tuo sito Web con gravi conseguenze senza il consenso della vittima, ad esempio cambiando impostazioni, password o in questo caso specifico iniettando js. Leggi su CSRF se devi capirne di più.

    
risposta data 22.04.2018 - 23:18
fonte

Leggi altre domande sui tag