六一兒童節(jié)快到了,最近出了太多太多的漏洞,像前幾天被爆出的cve-2019-0708漏洞,利用的是windows服務(wù)器遠(yuǎn)程桌面rdp協(xié)議進(jìn)行的攻擊,今天來給大家送一個(gè)禮物是關(guān)于網(wǎng)站方面的,jsonp漏洞可以導(dǎo)致csrf網(wǎng)站攻擊。很多人會(huì)把jsonp跟json當(dāng)成是一個(gè)東西,但真實(shí)情況不是這樣的,先來介紹一下什么是jsonp,簡單來講就是一個(gè)可以解決網(wǎng)站跨域請(qǐng)求訪問的一個(gè)語言,可以幫助網(wǎng)站跨域的去請(qǐng)求參數(shù),使數(shù)據(jù)之間同步,很好的解決不同網(wǎng)站之間的通信問題。關(guān)于網(wǎng)站漏洞的JSONP劫持漏洞,我們來詳細(xì)的分析看下。一般網(wǎng)站在設(shè)計(jì)功能過程加入jsonp實(shí)例代碼,比如下面這一段,圖1:
使用的是php語言開發(fā)的,很簡單的一個(gè)第三方j(luò)sonp接口,返回用戶名和密碼,當(dāng)get請(qǐng)求的時(shí)候就會(huì)返回我們需要的值,如果我們對(duì)callback值進(jìn)行修改的時(shí)候,返回的值也會(huì)有所改變,那么這里就可以被我們利用,修改成惡意的代碼,來欺騙用戶點(diǎn)擊,從而向服務(wù)器端里的json接口進(jìn)行請(qǐng)求,當(dāng)用戶輸入賬號(hào)密碼等信息的時(shí)候就已經(jīng)不知不覺的提交到了攻擊者的網(wǎng)站里,用戶密碼被泄露。如下圖:
JSONP漏洞應(yīng)該算是屬于csrf攻擊,誘導(dǎo)用戶點(diǎn)擊并獲取用戶的賬號(hào)密碼等敏感信息,CSRF攻擊還遠(yuǎn)遠(yuǎn)不止光可以獲取用戶的賬號(hào)密碼,還是做其他攻擊用途,我們在日常的安全檢測當(dāng)中還遇到過csrf防護(hù)使用了token動(dòng)態(tài)值,使用token可以大大的防止csrf攻擊的發(fā)生,但是我們可以繞過該token防護(hù),具體該怎么繞過呢?
在網(wǎng)站的整個(gè)用戶提交表單中我們發(fā)現(xiàn)有些token值被隱藏了,那么我們可以直接偽造代碼,通過jsonp的提交方式來獲取整個(gè)表單的內(nèi)容,并將其中的token值獲取出來,填充到我們構(gòu)造的表單中,完成csrf攻擊。
網(wǎng)站漏洞修復(fù)建議:
對(duì)調(diào)用到的json文件以及接口進(jìn)行安全限制,判斷用戶來路Referer,對(duì)所有的用戶請(qǐng)求設(shè)置token,統(tǒng)一值,對(duì)json格式的輸出編碼設(shè)置為utf8,對(duì)callbak回調(diào)參數(shù)以及json的數(shù)據(jù)通信嚴(yán)格的把控,jsonp請(qǐng)求與返回的值進(jìn)行長度檢查,對(duì)一些特殊字符尤其csrf攻擊字符進(jìn)行過濾,比如*&#斜杠等等的字符,如果對(duì)代碼不熟悉的話建議聯(lián)系專業(yè)的網(wǎng)站安全公司或網(wǎng)站漏洞修復(fù)公司來處理解決。
申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!