CSRF令牌保护的绕过技术详解

20 阅读1分钟

绕过CSRF令牌保护

1- 验证取决于请求方法

某些应用程序在使用POST方法时能正确验证令牌,但在使用GET方法时会跳过验证。

实验室演示1: youtu.be/QvRGE7x8kAU

2- CSRF令牌验证取决于令牌是否存在

某些应用程序在令牌存在时能正确验证,但如果令牌被省略则会跳过验证。攻击者可以移除包含令牌的整个参数(不仅仅是值)来绕过验证。

实验室演示2: www.youtube.com/watch?v=mnq…

3- CSRF令牌未与用户会话绑定

某些应用程序不验证令牌是否属于发起请求的同一用户会话。应用程序维护一个已发行令牌的全局池,并接受出现在此池中的任何令牌。在这种情况下,攻击者可以使用自己的账户登录应用程序,获取有效令牌,然后在CSRF攻击中将该令牌提供给受害用户。

实验室演示3: youtu.be/UhzYQXp7WRc

4- CSRF令牌绑定到非会话cookie

某些应用程序确实将CSRF令牌绑定到cookie,但不是绑定到用于跟踪会话的同一cookie。如果网站包含任何允许攻击者在受害者浏览器中设置cookie的行为,则攻击是可能的。

实验室演示4: www.youtube.com/watch?v=YJ0…

5- CSRF令牌简单地在cookie中重复

应用程序不维护任何已发行令牌的服务器端记录,而是在cookie和请求参数中重复每个令牌。

实验室演示5: www.youtube.com/watch?v=wLF…