反映的XSS:为什么必须将攻击有效负载反映到受害者的浏览器?

时间:2018-07-02 19:12:18

标签: javascript html http security xss

据我了解,这是反映的XSS中的流程:

  1. 用户点击恶意链接,提交恶意表格或访问恶意网站
  2. 以上操作导致恶意脚本运行,该恶意脚本告诉浏览器将攻击有效载荷作为URI中的参数发送HTTP请求到另一台服务器
  3. 接收服务器处理URI,在某些情况下,这意味着有效负载被发送回用户的浏览器
  4. 将有效负载发送回用户浏览器的情况包括:
    1. 浏览器报告找不到资源的错误消息
    2. 当浏览器要报告搜索结果时
  5. 然后浏览器执行攻击负载

我的问题

  • 为什么有效载荷不能做到使接收服务器直接将黑客想要的内容发送给黑客?即为什么需要将其反映回用户的浏览器?

我怀疑这是因为浏览器可能已在服务器上进行了身份验证(登录)。因此,只有在浏览器执行有效载荷的情况下,黑客才会拥有该特定用户的敏感/受限制的帐户信息。

1 个答案:

答案 0 :(得分:1)

代码必须在某个地方执行

通过将不良数据潜入用户的浏览器中来触发任意代码执行要容易得多(因为它希望接收混合了JS的HTML),然后在服务器上触发它。

如果它是在服务器上触发的,则它不是XSS攻击。

(SQL注入是服务器上代码执行攻击的一个示例)。

  

我怀疑是因为浏览器可能是   在服务器上已验证(登录)。因此,仅当浏览器   执行有效负载,黑客会掌握该特定负载吗?   用户的敏感/受限帐户信息。

这就是为什么XSS对攻击者有用的原因(否则,他们只能从自己的浏览器发出HTTP请求)。