1 簡(jiǎn)介
CSRF其實(shí)是一種業(yè)務(wù)邏輯漏洞,對(duì)關(guān)鍵的操作確實(shí)確認(rèn)機(jī)制。
全稱: Cross-site request forgery
與XSS區(qū)別:
- 從信任的角度:
XSS: 利用客戶端對(duì)站點(diǎn)的信任(從服務(wù)端下發(fā)下來(lái)了的所有腳本對(duì)客戶端來(lái)說(shuō)都是可信的,當(dāng)服務(wù)端存在跨站腳本漏洞的時(shí)候,無(wú)論是利用反射型還是持久型,就可以利用服務(wù)端向客戶端注入惡意的腳本內(nèi)容)
CSRF: 利用站點(diǎn)對(duì)客戶端的信任(默認(rèn)情況下站點(diǎn)是不信任客戶端的,客戶端可能來(lái)自互聯(lián)網(wǎng)上任何人的訪問(wèn)。當(dāng)已經(jīng)進(jìn)行了身份認(rèn)證的客戶端,站點(diǎn)會(huì)給予一定程度的信任。csrf的本質(zhì)就是利用站點(diǎn)對(duì)已經(jīng)進(jìn)行了身份認(rèn)證的客戶端的信任)
2 危害
結(jié)合社工在身份認(rèn)證會(huì)話過(guò)程中實(shí)現(xiàn)攻擊
- 修改賬號(hào)密碼、個(gè)人信息(email,收獲地址)
- 發(fā)送偽造的業(yè)務(wù)請(qǐng)求(網(wǎng)銀、購(gòu)物、投票)
- 關(guān)注他人社交賬號(hào)、推送博文
在用戶非自愿,不知情的情況下提交請(qǐng)求
3 漏洞利用條件
- 被害用戶已經(jīng)完成身份認(rèn)證
- 新請(qǐng)求的提交不需要重新身份認(rèn)證或確認(rèn)機(jī)制
- 攻擊者必須了解Web APP請(qǐng)求的參數(shù)構(gòu)造
- 誘使用戶觸發(fā)攻擊的指令(社工)
4 自動(dòng)掃描程序的檢測(cè)方法
- 在請(qǐng)求和響應(yīng)過(guò)程中檢查是否存在anti-CSRF token名
- 檢測(cè)服務(wù)器是否anti-CSRF token的名值
- 檢測(cè)token中可編輯的字符串
- 檢測(cè)referrer頭是否可以偽造
5 對(duì)策
- Captcha(驗(yàn)證碼機(jī)制)
- anti-CSRF token
- Referrer頭
- 降低會(huì)話超時(shí)時(shí)間