Security Testing AngularJS Web Application

4

Un'applicazione angularjs memorizza l'input dell'utente in local / sessionStorage e lo recupera in un secondo momento per riempire i campi del modulo o visualizzarlo successivamente. Se un javascript viene inviato come input dell'utente, viene archiviato nella memoria Web e viene visualizzato come richiesto, ma non viene eseguito. Suppongo che angularjs faccia qualche tipo di codifica di output durante la visualizzazione del contenuto.

Ho provato,

  1. Per utilizzare l'opzione Visualizza sorgente nel browser, ma mostra un'espressione prima che sia compilata
  2. Usa ispettore in Chrome: visualizza l'input così com'è.
  3. Proxy come Fiddler - Non aiuta molto da quando non è stata fatta richiesta.

Come faccio a vedere cosa rende effettivamente il browser? O come posso intercettare i dati dell'utente prima che sia compilato.

P.S. Ho solo un'idea molto semplice su AngularJS.

EDIT: questa domanda è specifica per la sicurezza delle applicazioni Web. Ho iniettato uno script XSS e viene "visualizzato" come testo. Ora ho bisogno di verificare se è codificato o meno. Tre opzioni menzionate non aiutano.

    
posta rajivvishwa 06.05.2013 - 22:33
fonte

1 risposta

3

AngularJS Batarang sembra essere lo strumento che stavi cercando. È un'estensione per gli strumenti per sviluppatori di Chrome che aggiunge il supporto per il debug e la profilazione delle applicazioni AngularJS.

Oltre a questo, puoi anche controllare i valori nel modo standard accedendo ai valori degli elementi DOM tramite JavaScript. Potrebbe essere un po 'complicato ottenere un puntatore all'elemento esatto in questione, quindi il più semplice sarebbe (per scopi di debug di base) semplicemente aggiungere all'elemento un ID e quindi accedervi in quel modo. Funzionerebbe anche nella scheda Espressioni di controllo in Sorgenti in Strumenti per sviluppatori di Chrome, ma non si aggiorna autonomamente ogni volta che il valore cambia, quindi potresti impostare un punto di interruzione del listener di eventi (dipende dal tipo di evento che stai cercando) e aggiornare valuta in questo modo nel debugger. Se tuttavia desideri intercettare i AngularJS ascoltatori di eventi personali (sostituisci quelli esistenti o creane di nuovi) quindi questo thread su StackOverflow dovrebbe essere coperto (la risposta per il tuo caso d'uso è nella domanda stessa).

Ma AngularJS Batarang è molto più conveniente, quindi non c'è bisogno di reinventare la ruota qui. Non sto dicendo che lo faresti, sto dicendo che in realtà l'ho fatto, prima di scoprire me stesso l'estensione. Ad ogni modo, spero che tutto ciò sia di aiuto;)

    
risposta data 07.05.2013 - 19:06
fonte

Leggi altre domande sui tag