您好,登錄后才能下訂單哦!
CSRF跨站請求偽造的實例分析,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
跨站請求偽造(英語:Cross-site request forgery),也被稱為 one-click attack或者 session riding,通常縮寫為 CSRF或者 XSRF, 是一種挾制用戶在當前已登錄的Web應用程序上執行非本意的操作的攻擊方法。跟跨網站腳本(XSS)相比,XSS利用的是用戶對指定網站的信任,CSRF 利用的是網站對用戶網頁瀏覽器的信任。
假如一家銀行用以運行轉賬操作的URL地址如下:http://www.examplebank.com/withdraw?account=AccoutName&amount=1000&for=PayeeName
那么,一個惡意攻擊者可以在另一個網站上放置如下代碼:
<img src="http://www.examplebank.com/withdraw?account=Alice&amount=1000&for=Badman">
如果有賬戶名為Alice的用戶訪問了惡意站點,而她之前剛訪問過銀行不久,登錄信息尚未過期,那么她就會損失1000資金。
這種惡意的網址可以有很多種形式,藏身于網頁中的許多地方。此外,攻擊者也不需要控制放置惡意網址的網站。例如他可以將這種地址藏在論壇,博客等任何用戶生成內容的網站中。這意味著如果服務端沒有合適的防御措施的話,用戶即使訪問熟悉的可信網站也有受攻擊的危險。
透過例子能夠看出,攻擊者并不能通過CSRF攻擊來直接獲取用戶的賬戶控制權,也不能直接竊取用戶的任何信息。他們能做到的,是欺騙用戶瀏覽器,讓其以用戶的名義運行操作。
無token驗證并且無referer驗證時,就基本存在跨站請求偽造,但基于功能點不同,一些為無意義無危害的跨站請求偽造。
提交數據包時抓包刪除referer字段,如果不報錯,則基本存在跨域請求偽造,GET型構造鏈接,POST型寫一個提交表單,測試有跨域情況下提交的數據包是否生效。
只有referer驗證時,可嘗試空referer,或者嘗試域名偽造。
例如只驗證referer是否存在bylibrary.cn時:
偽造三級域名為bylibrary.cn.baidu.com來繞過referer字段驗證;
在bylibrary.cn網站下發帖引導別人點擊我們構造的CSRF鏈接或者在此網站下發布我們構造的CSRF表單地址來繞過referer的檢測。
<html> <head></head> <body onload="form1.submit()"> <form id="form1" method="post" action="http://example.com"> <input type="hidden" name="sex" value="2" /> </form> </body> </html>
這里就用一個我測試中發現的csrf來作為示例吧,但這個并不能稱之為漏洞,廠商也忽略了,因為幾乎沒有危害,那么就演示一下大概的利用流程
首先出現csrf的地方為途虎養車個人中心:https://my.tuhu.cn/Account/UserInfo.html
1.修改個人信息用戶名和真實姓名時抓包
2.利用burp的CSRF測試插件生成html文件進行測試
3.生成的POC修改用戶名為CSRFtest并保存為HTML文件
4.打開生成的html頁面點擊按鈕
5.查看用戶中心是否已經修改成功
已經修改成功了,但是沒有任何危害,只能修改用戶姓名和昵稱,SRC給忽略了。
嚴格檢測referer字段,防止可以被繞過。
添加token偽隨機參數,后端校驗token有效性。
附上一張我覺得對token原理表述的比較明白的圖:
簽名是關鍵,用戶提交的數據后臺先根據算法和密鑰對數據加密后和用戶提交時附帶的token校驗,相同則校驗通過,反之則校驗失敗,返回錯誤。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。