非持久性XSS - URL中“==”的含义

时间:2017-05-11 16:34:36

标签: javascript c# .net iis-7 xss

我正在尝试了解非持久性XSS攻击。我了解到,非持久性XSS表单之一是在URL中添加可执行文件和js,如下所示

http://www.myxsssite.com/default.aspx?requesturl=<script>alert(hello)</script>

我在IIS上,如果我尝试上面的例子,IIS本身会抛出异常,说“从客户端(&lt;)检测到一个潜在危险的Request.Path值。”

但是当我尝试以下网址时,我会看到一个警告对话框,其中包含我在

中添加的内容
http://www.myxsssite.com/default.aspx?requesturl=docs/help-files/main.htm'==alert(hello)=='

第二种情况发生在未经身份验证的用户尝试直接访问帮助文件,其中构造上述URL,然后重定向到“登录”页面。登录后,requesturl param将用于重定向回用户开始的位置。

如果使用已经具有有效会话的选项卡重播相同的过程,则不会显示警告对话框。

我在这里的问题是'== =='的意义是什么,没有它我看不到警告对话

修改

在重定向到登录页面时,这是响应正文

<html><head><script>window.top.location='http://www.myxsssite.com/default.aspx?requesturl=docs/help-files/main.htm'==alert(hello)=='';</script></head><body></body></html>

我注意到的关键是,如果我从响应中获取网址并将其粘贴到浏览器中,则不会显示警告对话框。

现在可以归结为为什么当通过Javascript设置位置时会触发URL中的警报,为什么不直接复制到浏览器中。

0 个答案:

没有答案