做項目遇到Referer繞過的情況 有同事問起 這幾天不是很忙 就把自己知道的方法記錄下。
有條件限制 不一定所有的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攻擊代碼
比如你找的csrf是xxx.com 驗證的referer是驗證的*.xx.com 可以找個二級域名 之后<img "csrf地址"> 之后在把文章地址發出去 就可以偽造。
referer判斷存在不存在google.com這個關鍵詞
在網站新建一個google.com目錄 把CSRF存放在google.com目錄,即可繞過
判斷了域名是否含有163.com 那么我這里可以構造子域名t.163.com.test.com作為蠕蟲傳播的載體服務器,即可繞過。
本文出自 “Sanr” 博客,出處http://0x007.blog.51cto.com/6330498/1610946
下一篇:安全管理類軟件技術發展趨勢