2017-02-13 4 views
0

Ich versuche, die XSS Vurnablity in AngularJS durch ein einfaches Beispiel zu nutzen:XSS Vurnability Nutzung in AngularJS (einfaches Beispiel)

SNIPPET

<html> 
<head> 

    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.5/angular.min.js"></script> 

    <script> 
     //app declaration 
     var app = angular.module('myApp', []); 

     //controller declaration 
     app.controller('myCtrl', function ($scope) { 
      $scope.name = 9; 
     }); 
    </script> 

</head> 

<body ng-app="myApp" ng-controller="myCtrl"> 

    <input type="text" ng-model="name"> 

    <!-- sanitized html --> 
    <p ng-bind="name"></p> 
    <hr/> 
    <img src="apple.png" /> 

</body> 

</html> 

Ergebnis:

enter image description here

E xpectation:

Ich erwartete 2 Äpfel dort zu sein. Zuerst durch ng-bind und zweitens durch normales Bild (nach html). Ich kann ein zweites Apple-Bild sehen (wie im selben Ordner wie meine HTML-Datei), aber warum nicht zuerst? Obwohl ich den Link in ausgeführtem Code sehen kann?

+0

Modell als String behandelt wird finden. Verwenden Sie trustAsHTML, während Sie auf p-Tag setzen – Nirus

+0

Ich habe ein Beispiel dafür, wie normale angulare Website vurnarable sein kann. Wenn ich ustrustAsHTML hinzufüge, wird es zeigen, dass ich die Injektion erlaubt habe. Ich werde es nur benutzen, wenn ich bestätigt bin, kann Benutzer irgendetwas hier eingeben ... – Deadpool

+0

Was ist dein Punkt? Sie versuchen, eine Schwachstelle zu zeigen, die einfach nicht da ist. – Camo

Antwort