Javascript 在AngularJS中利用XSS Vurnability(简单示例)

Javascript 在AngularJS中利用XSS Vurnability(简单示例),javascript,angularjs,xss,ngsanitize,Javascript,Angularjs,Xss,Ngsanitize,我试图通过一个简单的例子来利用AngularJS中的XSS Vurnablity: 片段 <html> <head> <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.5/angular.min.js"></script> <script> //app declaration var app = ang

我试图通过一个简单的例子来利用AngularJS中的XSS Vurnablity:

片段

<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>

//应用程序声明
var-app=angular.module('myApp',[]);
//控制器声明
应用程序控制器('myCtrl',函数($scope){
$scope.name=9;
});


结果:

<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>

期望值:

<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>

我以为那里会有两个苹果。首先通过ng绑定,然后通过普通图像(按照html)。我可以看到第二张苹果图片(和我的html文件在同一个文件夹中),但为什么不先看呢?不过,我可以在执行的代码中看到链接

ng bind
自动转义html代码

如果要显示未经消毒的结果,请使用
ng bind html

您可以在链接文档中找到更多详细信息:


模型被视为字符串。设置为p时使用trustAsHTML tagI必须举例说明正常角度站点的可访问性。如果我添加usetrustAsHTML,它将显示我允许进行注射。我将使用它,只有当我确认用户可以在这里输入任何东西…你的观点是什么?您正试图显示一个根本不存在的漏洞。Angular不允许img标记被注入,它应该被视为一个文本。如果要将简单文本转换为html,则必须显式地允许它信任。你到底在找什么?它是ng bind html。不支持html绑定