CSRF where Refere validation depends on header being present

Referer-based defenses against CSRF

除了使用CSRF令牌的防御外,一些应用程序还利用HTTP Referer头试图防御CSRF攻击,
通常是通过验证请求来自应用程序自己的域。这种方法通常没有那么有效,而且经常会被绕过。

HTTP Referer头(在HTTP规范中无意中拼错了)是一个可选的请求头,它包含链接到被请求资源的web页面的URL。
它通常由浏览器在用户触发HTTP请求时自动添加,包括通过单击链接或提交表单。有各种方法允许链接页保留或
修改Referer头的值。这通常是出于隐私考虑。

Referer的验证取决于报头是否存在

有些应用程序在请求中会验证Referer头,但如果省略了Referer头则会跳过验证。

在这种情况下,攻击者可以利用CSRF漏洞,使受害用户的浏览器在结果请求中删除Referer头。
有各种方法来实现这一点,但最简单的是使用一个META标签的HTML页面,宿主CSRF攻击:

<meta name="referrer" content="never">

实验

上一篇:nginx代理WEB服务效验CSRF Headers失败


下一篇:Pikachu靶场通关笔记