六一兒童節快到了,最近出了太多太多的漏洞,像前幾天被爆出的cve-2019-0708漏洞,利用的是windows服務器遠程桌面rdp協議進行的攻擊,今天來給你們送一個禮物是關於網站方面的,jsonp漏洞能夠致使csrf網站攻擊。不少人會把jsonp跟json當成是一個東西,但真實狀況不是這樣的,先來介紹一下什麼是jsonp,簡單來說就是一個能夠解決網站跨域請求訪問的一個語言,能夠幫助網站跨域的去請求參數,使數據之間同步,很好的解決不一樣網站之間的通訊問題。關於網站漏洞的JSONP劫持漏洞,咱們來詳細的分析看下。通常網站在設計功能過程加入jsonp實例代碼,好比下面這一段,圖1:php
使用的是php語言開發的,很簡單的一個第三方jsonp接口,返回用戶名和密碼,當get請求的時候就會返回咱們須要的值,若是咱們對callback值進行修改的時候,返回的值也會有所改變,那麼這裏就能夠被咱們利用,修改爲惡意的代碼,來欺騙用戶點擊,從而向服務器端裏的json接口進行請求,當用戶輸入帳號密碼等信息的時候就已經不知不覺的提交到了攻擊者的網站裏,用戶密碼被泄露。以下圖:json
JSONP漏洞應該算是屬於csrf攻擊,誘導用戶點擊並獲取用戶的帳號密碼等敏感信息,CSRF攻擊還遠遠不止光能夠獲取用戶的帳號密碼,仍是作其餘攻擊用途,咱們在平常的安全檢測當中還遇到過csrf防禦使用了token動態值,使用token能夠大大的防止csrf攻擊的發生,可是咱們能夠繞過該token防禦,具體該怎麼繞過呢?windows
在網站的整個用戶提交表單中咱們發現有些token值被隱藏了,那麼咱們能夠直接僞造代碼,經過jsonp的提交方式來獲取整個表單的內容,並將其中的token值獲取出來,填充到咱們構造的表單中,完成csrf攻擊。跨域
網站漏洞修復建議:安全
對調用到的json文件以及接口進行安全限制,判斷用戶來路Referer,對全部的用戶請求設置token,統一值,對json格式的輸出編碼設置爲utf8,對callbak回調參數以及json的數據通訊嚴格的把控,jsonp請求與返回的值進行長度檢查,對一些特殊字符尤爲csrf攻擊字符進行過濾,好比*&#斜槓等等的字符,若是對代碼不熟悉的話建議聯繫專業的網站安全公司或網站漏洞修復公司來處理解決。服務器