【问题标题】:CSRF attack - GET and POST request on same pageCSRF 攻击 - 同一页面上的 GET 和 POST 请求
【发布时间】:2017-02-03 00:36:54
【问题描述】:

一个网络应用程序有一个删除按钮。单击该 Web 应用程序后,首先执行 GET 请求,这将返回带有令牌密钥的 POST 表单。 询问是或否。如果是,则删除资源。

如何实现 CSRF 攻击?我可以提交隐藏在 iframe 中的第一个请求,但我需要该令牌来提交第二个 POST 请求。

Ajax 由于 CORS 而失败。

那么它甚至可能在一页上

  1. 发送 GET 请求
  2. 解析响应并获取令牌
  3. 提交带有令牌的 POST 表单以触发 CSRF

【问题讨论】:

    标签: html ajax csrf


    【解决方案1】:

    我认为这本质上是针对 CSRF 的标准保护,在页面生成(GET)时生成一个令牌,并在提交(POST)时验证它实际上改变了应用程序状态(在您的情况下删除一个对象)。所以从概念上讲,它对我来说看起来不错。

    但魔鬼在细节中。令牌是如何生成的(使用什么算法和/或随机生成器,它有多少熵),然后如何验证它?它是存储在某个地方还是无状态的?什么时候生成新令牌,什么时候重用旧令牌?这些是在防御 CSRF 时必须始终考虑的一些问题。

    对于您的方案,您会想到一个特殊问题,即确认页面是否包含有关将要执行的操作的所有详细信息。一个简单的“你确定吗?”我认为在你的情况下是不够的。

    【讨论】:

    • 在 GET 之后,客户端没有发送任何内容,但响应包含服务器生成的令牌,该令牌不遵守 X-CSRF 标头。我需要抓住它并重新发送。我们只需要获取第一个 GET 的来源并找到令牌
    猜你喜欢
    • 1970-01-01
    • 2014-05-31
    • 2014-08-27
    • 1970-01-01
    • 2013-04-29
    • 1970-01-01
    • 2020-08-05
    • 2019-02-19
    • 1970-01-01
    相关资源
    最近更新 更多