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