今天就跟大家聊聊有關(guān)CSRF漏洞的實(shí)例分析,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
目前成都創(chuàng)新互聯(lián)已為上1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、衡水網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
CSRF(Cross-site request forgery)跨站請(qǐng)求偽造,也被稱為One Click Attack 或者Session Riding,通??s寫為CSRF或者XSRF,是一種對(duì)網(wǎng)站的惡意利用。盡管聽起來像跨站腳本(XSS),但它與XSS非常 不同,XSS利用站點(diǎn)內(nèi)的信任用戶,而CSRF則通過偽裝來自受信任用戶的請(qǐng)求來利用受信任的網(wǎng)站。與XSS攻擊相比,CSRF攻擊性往往不大流行(因此對(duì)其進(jìn)行防范的資源也相對(duì)少)和難以防范,所以被認(rèn)為比XSS更具危險(xiǎn)性。
跨站請(qǐng)求攻擊,簡(jiǎn)單地說,是攻擊者通過一些技術(shù)手段欺騙用戶的瀏覽器去訪問一個(gè)自己曾經(jīng)認(rèn)證過的網(wǎng)站并執(zhí)行一些操作(如發(fā)郵件、發(fā)消息、甚至財(cái)產(chǎn)操作:轉(zhuǎn)賬、購(gòu)買商品等)。由于瀏覽器曾經(jīng)認(rèn)證過,所以被訪問的網(wǎng)站會(huì)認(rèn)為是真正的用戶操作而去執(zhí)行。這利用了web中用戶身份認(rèn)證的一個(gè)漏洞:簡(jiǎn)單的身份驗(yàn)證只能保證請(qǐng)求發(fā)自某個(gè)用戶的瀏覽器,卻不能保證請(qǐng)求本身是用戶自愿發(fā)出的。
1.用戶C打開瀏覽器,訪問受信任網(wǎng)站A,輸入用戶名和密碼請(qǐng)求登錄網(wǎng)站A;
2.在用戶信息用過驗(yàn)證后,網(wǎng)站A產(chǎn)生Cookie信息并返回給瀏覽器,此時(shí)用戶登錄網(wǎng)站A成功,可以正常發(fā)送請(qǐng)求到網(wǎng)站A;
3.用戶未退出網(wǎng)站A之前,在同一瀏覽器中打開一個(gè)TAB頁訪問網(wǎng)站B;
4.網(wǎng)站B接受到用戶請(qǐng)求后,返回一些攻擊性代碼,并發(fā)出一個(gè)請(qǐng)求要求訪問第三方站點(diǎn)A;
5.瀏覽器在接收到這些攻擊性代碼后,根據(jù)網(wǎng)站B的請(qǐng)求,在用戶不知情的情況下攜帶Cookie信息,向網(wǎng)站A發(fā)出請(qǐng)求。網(wǎng)站A并不知道該請(qǐng)求其實(shí)是由B發(fā)起的,所以會(huì)根據(jù)用戶C的Cookie信息以C的權(quán)限處理該請(qǐng)求,導(dǎo)致來自網(wǎng)站B的惡意代碼被執(zhí)行。
受害者 Bob 在銀行有一筆存款,通過對(duì)銀行的網(wǎng)站發(fā)送請(qǐng)求http://bank.example/withdraw?account=bob&amount=1000000&for=bob2可以使Bob把1000000 的存款轉(zhuǎn)到bob2的賬號(hào)下。通常情況下,該請(qǐng)求發(fā)送到網(wǎng)站后,服務(wù)器會(huì)先驗(yàn)證該請(qǐng)求是否來自一個(gè)合法的 session,并且該session 的用戶Bob已經(jīng)成功登陸。
黑客 Mallory 自己在該銀行也有賬戶,他知道上文中的 URL 可以把錢進(jìn)行轉(zhuǎn)帳操作。Mallory 可以自己發(fā)送一個(gè)請(qǐng)求給銀行:http://bank.example/withdraw?account=bob&amount=1000000&for=Mallory。但是這個(gè)請(qǐng)求來自 Mallory 而非 Bob,他不能通過安全認(rèn)證,因此該請(qǐng)求不會(huì)起作用。
這時(shí),Mallory 想到使用CSRF的攻擊方式,他先自己做一個(gè)網(wǎng)站,在網(wǎng)站中放入如下代碼: src=”http://bank.example/withdraw?account=bob&amount=1000000&for=Mallory”,并且通過廣告等誘使 Bob 來訪問他的網(wǎng)站。當(dāng) Bob 訪問該網(wǎng)站時(shí),上述 url 就會(huì)從Bob的瀏覽器發(fā)向銀行,而這個(gè)請(qǐng)求會(huì)附帶Bob瀏覽器中的cookie一起發(fā)向銀行服務(wù)器。大多數(shù)情況下,該請(qǐng)求會(huì)失敗,因?yàn)樗驜ob的認(rèn)證信息。但是,如果Bob當(dāng)時(shí)恰巧剛訪問他的銀行后不久,他的瀏覽器與銀行網(wǎng)站之間的session尚未過期,瀏覽器的cookie之中含有Bob的認(rèn)證信息。這時(shí),悲劇發(fā)生了,這個(gè)url請(qǐng)求就會(huì)得到響應(yīng),錢將從Bob的賬號(hào)轉(zhuǎn)移到Mallory的賬號(hào),而Bob當(dāng)時(shí)毫不知情。等以后Bob發(fā)現(xiàn)賬戶錢少了,即使他去銀行查詢?nèi)罩?,他也只能發(fā)現(xiàn)確實(shí)有一個(gè)來自于他本人的合法請(qǐng)求轉(zhuǎn)移了資金,沒有任何被攻擊的痕跡。而Mallory則可以拿到錢后逍遙法外。
1.檢測(cè)CSRF漏洞是一項(xiàng)比較繁瑣的工作,最簡(jiǎn)單的方法就是抓取一個(gè)正常請(qǐng)求的數(shù)據(jù)包,去掉Referer字段后再重新提交,如果該提交還有效,那么基本上可以確定存在CSRF漏洞。
2.隨著對(duì)CSRF漏洞研究的不斷深入,不斷涌現(xiàn)出一些專門針對(duì)CSRF漏洞檢測(cè)的工具,若CSRFTester,CSRF Request Builder等。
修改用戶信息
執(zhí)行惡意操作
目前防御CSRF攻擊主要有三種策略:
1.驗(yàn)證HTTP Referer字段;
2.在請(qǐng)求地址中添加token并驗(yàn)證;
3.在HTTP頭中自定義屬性并驗(yàn)證。
CSRF與XSS的區(qū)別:最大的區(qū)別就是CSRF沒有盜取用戶的Cookie,而是直接的利用了瀏覽器的Cookie讓用戶去執(zhí)行某個(gè)動(dòng)作。
漏洞條件
1.被害用戶已經(jīng)完成身份認(rèn)證
2.新請(qǐng)求的提交不需要重新身份認(rèn)證或確認(rèn)機(jī)制
3.攻擊者必須了解Web APP請(qǐng)求的參數(shù)構(gòu)造
4.引誘用戶觸發(fā)攻擊的指令(社工)
各種功能點(diǎn)
密碼修改處
點(diǎn)贊
轉(zhuǎn)賬
注銷
刪除
看完上述內(nèi)容,你們對(duì)CSRF漏洞的實(shí)例分析有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。