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