绕过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…