- CTF實戰(zhàn):技術(shù)、解題與進(jìn)階
- ChaMd5安全團隊
- 665字
- 2023-08-28 18:13:21
1.3 跨站請求偽造
跨站請求偽造(Cross-Site Request Forgery, CSRF)也被稱為one-click attack或者session riding,有時寫作XSRF,是一種挾制用戶在當(dāng)前已登錄的Web應(yīng)用程序上執(zhí)行非本意操作的攻擊方法。與XSS相比,XSS利用的是用戶對指定網(wǎng)站的信任,CSRF利用的是網(wǎng)站對用戶網(wǎng)頁瀏覽器的信任。
現(xiàn)有兩個網(wǎng)站A Site、B Site, A Site為用戶信任站點,B Site為攻擊者構(gòu)造的惡意站點,如圖1-81所示。

圖1-81 構(gòu)造惡意站點
受害用戶登錄受信任的A站點,A站點會在返回給瀏覽器的信息中帶上已登錄的cookie, cookie信息會在瀏覽器端保存一定的時間(根據(jù)服務(wù)端設(shè)置而定),這里設(shè)置了一個cookie“CSRF=this is B COOKIE”模擬用戶登錄A站點,如圖1-82所示。

圖1-82 模擬用戶登錄A站點
登錄A站點以后,用戶在沒有登出(清除A站點的cookie)A站點的情況下,訪問惡意站點B。這時B站點會劫持用戶向A站點發(fā)起請求,而這個請求會帶上瀏覽器端所保存的A站點的cookie,如圖1-83所示。
A站點根據(jù)請求所帶的cookie,判斷此請求為受害用戶所發(fā)送的。因此,A站點會根據(jù)受害用戶的權(quán)限來處理B站點所發(fā)起的請求,而這個請求可能以受害用戶的身份發(fā)送郵件、短信、消息,以及進(jìn)行轉(zhuǎn)賬支付等操作,這樣B站點就達(dá)到了偽造受害用戶請求A站點的目的。這就是CSRF漏洞的攻擊方式。

圖1-83 查看cookie
由于瀏覽器同源策略的存在,兩個非同源網(wǎng)站直接訪問是受限制的。訪問非同源網(wǎng)站的資源被稱為跨域,CSRF也叫作跨域攻擊。
跨域可以使用HTML標(biāo)簽訪問,也可以使用JavaScript訪問。JavaScript訪問非同源網(wǎng)站時,訪問請求是可以發(fā)送的,但是服務(wù)端將響應(yīng)送回后,客戶端的瀏覽器默認(rèn)不接受請求。
幾種常見的跨域方式如下。
● img標(biāo)簽屬性。
● iframe標(biāo)簽屬性。
● script標(biāo)簽屬性。
● JavaScript方法:Image對象、XML對象、HTTP對象。
● JSONP。
● CORS。
- 網(wǎng)絡(luò)安全與管理
- Android應(yīng)用安全實戰(zhàn):Frida協(xié)議分析
- SASE原理、架構(gòu)與實踐
- 黑客大曝光:無線網(wǎng)絡(luò)安全(原書第3版)
- Web安全與攻防入門很輕松(實戰(zhàn)超值版)
- 網(wǎng)絡(luò)安全技術(shù)及應(yīng)用(第3版)
- Python Penetration Testing Cookbook
- 網(wǎng)絡(luò)安全技術(shù)與實訓(xùn)(第4版)(微課版)
- Computer Forensics with FTK
- 云原生安全與DevOps保障
- Instant Java Password and Authentication Security
- 網(wǎng)絡(luò)安全設(shè)計、配置與管理大全
- 編譯與反編譯技術(shù)實戰(zhàn)
- SQL Injection Strategies
- Mastering Python for Networking and Security