Ho bisogno di aiuto per verificare se i parametri sono sensibili alle iniezioni XSS in una pagina web generata da angularjs .
Oggi molti siti web usano angularjs per deportare la costruzione della pagina del client sul lato client (quindi questo lavoro non deve più essere eseguito sul lato server).
Quindi, quando eseguo una richiesta HTTP, il server risponde con un codice sorgente che è un modello angolare per costruire la pagina. Quindi, questa risposta del server non corrisponde alla pagina web finale che posso vedere dopo l'elaborazione angolare.
utilizzando CTRL + U (mostra il codice sorgente), questo è lo stesso problema, vedrò solo la risposta del server (prima dell'elaborazione angolare).
Usando firebug o la console per sviluppatori web, posso vedere solo una sorta di "rendering" del codice sorgente grezzo.
Ad esempio, se provi a iniettare <script>
in un parametro, dopo l'elaborazione di angularjs, forse <script>
verrà disinfettato in <script>
.
Ma, nella console degli sviluppatori web (o in firebug). Vedrò <script>
anche se <
e >
sono sterilizzati (perché <
e >
sono interpretati e stampati umanamente da me).
Quindi, è molto difficile controllare se il mio modello di iniezione è sfuggito o no (ok non vedo un popup, quindi credo che qualcosa sia sfuggito). Sto cercando un modo per ottenere facilmente il codice sorgente raw della pagina dopo che angularjs ha costruito la pagina finale.
Ho sentito parlare di phantomjs, ma non sono sicuro che questo copra esattamente le mie esigenze e forse c'è un modo più facile o più veloce
Modifica
So che quell'angolare ha le sue regole di fuga. Ma sono riuscito a inserire il codice javascript all'interno di un parametro ed eseguirlo da qualche altra parte (dove viene visualizzato su un'altra pagina web). Quindi so che alcune parti del sito Web non sono protette.
Su una pagina web specifica, il parametro viene visualizzato ma il javascript non viene eseguito, quindi suppongo che alcuni caratteri speciali siano sfuggiti. E voglio sapere quali.
Firefox e Chrome Inspector mi danno la stessa vista:
<span ...>aaaaaa<script>alert(1);</script>aaaaaa</span>
Infine, ho trovato che se faccio un clic destro e "copia html" (chrome) o "modifica" firefox. Riesco a vedere il codice sorgente non elaborato che mi mostra cosa è effettivamente sfuggito:
<span ...>aaaaaa<script>alert(1);</script>aaaaaa</span>
Per la piccola storia, ho trovato questo volendo copiare l'estratto del codice in un commento su security.stackexchange.com ^^