繁体   English   中英

xss有效负载未在浏览器中执行

[英]xss payload not executing in browser

我正在为.net MVC应用程序进行渗透测试。 该应用程序使用Javascript框架/库,例如Jquery和angular JS。

网页上有一个输入字段,我可以在其中输入<script>alert(1)</script>. Web应用程序通过AJAX响应(json响应)将输入发送回。 我可以在网页上反映出我的输入,但是我提供的用于测试XSS的javascript有效负载无法执行。 我已经在谷歌浏览器和IE中对其进行了测试。

我已经检查了AJAX响应,并且没有输出编码。

尽管标题X-XSS-Protection:1; mode = block存在,我看不到Google chrome控制台中有关阻止不安全脚本的任何错误(如果chrome阻止执行不安全的javascript,我们通常会收到此错误)。

我检查了以下网址,以了解angual-js是否默认输出编码/转义。 https://docs.angularjs.org/guide/security,但请不要完全了解。

当我检查元素即输入( <script>alert(1)</script> )时,得到以下内容:

<textarea rows="3" ng-model="abc" maxlength="500" placeholder="xyz" ng-readonly="abcd>1" input-restrictor="" class="ng-pristine ng-valid ng-valid-maxlength ng-not-empty ng-touched" aria-multiline="true" aria-invalid="false" readonly="readonly"></textarea>

有什么见解为什么我的JS有效负载未在浏览器中执行?

终于我得到了答案。 AngularJS在呈现内容之前不会输出编码。 我们的有效载荷-

<script>alert('xss')</script>

变成如图所示的样子。 浏览器将其视为纯文本而不是javascript,因此不会执行。

仅当您检查元素并右键单击并编辑为HTML时,才能看到输出编码。 我还在这里https://medium.com/@nav7neeet/angular-js-and-xss-458eea91f3a5撰写了更详细的博客文章

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM