Я пытаюсь внедрить уязвимое приложение XSS, чтобы впоследствии я мог улучшить аспекты безопасности, используя принципы доменного управления. Внешний интерфейс реализован с AngularJS, для которого я отключил $ sceProvider. Тем не менее, любой из примеров атак XSS, которые я пробовал до сих пор, не работал.
HTML-страница:
<div class="row" ng-init="loadArticles()">
<h1>Existing articles</h1>
<table id="tabela1" class="table table-striped table-hover">
<thead>
<tr>
<th>Book title: </th>
<th>Description: </th>
</tr>
</thead>
<tbody>
<tr ng-repeat="b in BOOKS track by $index" >
<td style="padding-right: 15px">{{b.title.value}}</td>
<td style="padding-right: 15px">{{b.description.value}}</td>
</tr>
</tbody>
</table>
</div>
</div>
ArticleController.js
$scope.loadArticles = function () {
console.log("loading articles");
var url = "/api/article/getAll";
$.ajax({
type: 'GET',
url : url,
contentType: 'application/json',
dataType: 'text',
success: function (data) {
$scope.BOOKS = JSON.parse(data);
$scope.$apply();
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
//toaster poruka
alert('Could not load articles!');
}
});
};
Когда, например,
<script>alert();</script>
вводится в описание и отправляется на сервер для сохранения в базе данных; при следующей загрузке страницы она печатается таким же образом, без предупреждения.