<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            原文地址:http://drops.wooyun.org/papers/6612

            0x00 簡介


            前幾天安全研究者Jaime Blasco發現了在中國某些特定主題的網站被進行了水坑攻擊,攻擊方法有一定多樣性,其中存在一些比較少見于此類型攻擊中的技術,不過其實是比較早的技術了,國內猥瑣流已經玩了很久的玩意。攻擊類型的多樣性在于,該安全公司并非追蹤到了某個攻擊組織的多次活動,而是某個特定主題網站的多次攻擊。

            比如參考1,發送Microsoft Office .doc利用MS09-027來打蘋果電腦,雖然我認為他們可能沒打到啥東西。除此之外的攻擊事件還可以參考2, 3

            這次的攻擊方式總結起來就是 當受害者訪問網站a時會處罰惡意代碼,之后惡意代碼會去訪問某些存在可獲取私人信息接口的網站,獲取信息后再上傳至c2。下面是該安全公司統計的惡意代碼獲取信息的網站,總的來說應該是以中國地區的用戶為目標的一次行動,這年頭會上這些網站的老外不多了。

            enter image description here

            至于提到的玩爛了,烏云上有記錄的分析最早是劍心boss 2012年發布的 《Json hijacking/Json劫持漏洞》參考文獻4 以及2014 年zone社區的兩篇相關文章以及利用文章。可看參考56

            0x01 原理 & 攻擊分析


            總結來說js會通過某種方式獲取數據來方便用戶的交互,這種獲取數據的方式有一些通用的格式,這里就是json or jsonp。一般js會通過兩種方式獲取數據。一種是xmlhttp還有一種是script的形式。

            xmlhttp的數據獲取方式只有在同一個域的情況下才可以獲取,不然會遭受同源策略的限制,但是如果數據位于兩個不同的域名,那么只有通過script的方式進行獲取,通過script的方式先傳入一個callback,那么數據就會被傳入的函數執行。這樣就不會遭到同源策略的限制。

            #!javascript
            <script>  
            function wooyun_callback(a){  
            alert(a);  
            }  
            </script>  
            <script src="http://www.wooyun.org/userdata.php?callback=wooyun_callback"></script>  
            

            這次其實就是在目標網站群上插入通過此類型的接口獲取信息的代碼,再獲取目標的私人信息。老外給了幾張惡意代碼的截圖。

            1 利用代碼,通過某種方式在受害者訪問的網站嵌入

            enter image description here

            enter image description here

            2 通過callback獲取響應數據

            enter image description here

            3 解析響應數據

            enter image description here

            老外提到了一個中國安全博客 代碼風格有點像。這里大概原理已經解釋的差不多了。

            0x02 利用代碼 & 案例


            關于這方面就是jacks寫的《JSON探針—定位目標網絡虛擬信息身份》參考5 和 xiaoxin在此之上擴展的 《jsonp探針callback地址收集帖》參考6。

            案例方面 可以在烏云主站搜索到需要的案例 wooyun.org

            比如 http://wooyun.org/bugs/wooyun-2010-0118732 可以獲取用戶的購買記錄等大量的隱私信息。比較有代表性的還有劍心發布的 WooYun: QQMail郵件泄露漏洞 通過qqmail的特殊接口獲取郵箱內容。

            #!javascript
            <script>  
            var Qmail={};  
            </script>  
            <script src="http://mail.qq.com/cgi-bin/login?fun=passport&target=MLIST&t=login.js&pagesize=10&resp_charset=gb2312&1=3"></script>  
            <script>  
            alert(Qmail.newMailsList.nextUrl);  
            alert(document.scripts[1].src=Qmail.newMailsList.nextUrl);  
            alert(Qmail.newMailsList.summary);  
            </script>  
            

            0x03 攻擊原因分析


            Jaime Blasco提到攻擊原因的方面,攻擊出現某些特定的主題的網站,以某些少數民族以及支持自由言論的非政府組織。攻擊目標以小部分群體為主,攻擊的目的應該在于收集其個人的資料,其中一個原因可能在于在中國一部分網站受到gfw的攔截,但是只要使用vpn以及tor就可以正常訪問,在使用某種代理的前提下收集這一部分群體的信息存在難度,那么就可以通過水坑的方式,跨域收集個人信息。

            0x04 修復 & 防御 方案


            1. 盡量避免跨域的數據傳輸,對于同域的數據傳輸使用xmlhttp的方式作為數據獲取的方式,依賴于javascript在瀏覽器域里的安全性保護數據。
            2. referer的來源限制,利用前端referer的不可偽造性來保障請求數據的應用來源于可信的地方,此種方式力度較稀,完全依賴于referer,某些情況下(如存在xss)可能導致被繞過。
            3. token的加入,嚴格來說,這種利用javascript hijacking的方式獲取數據是CSRF的一種,不過較之傳統的CSRF不能獲取數據只能提交而言,這種方式利用javascript可以獲取一些敏感信息而已。如果我們能讓攻擊者對接口未知,就可以實現json hijacking的防御了。利用token對調用者的身份進行認證,這種方式對于調用者的身份會要求力度較細,但是一旦出現xss也可能導致前端Token的泄露,從而導致保護失效。
            4. 對于同域的json使用情況下,可以在數據的輸出頭部加入while(1);的方式避免數據被script標簽的方式引用,這可以防止一些比較有特性的瀏覽器里導致的數據泄漏。

            此外老外還提到了

            1. 使用CORS代替jsonp
            2. 不要在使用cookie的情況下使用jsonp交換數據

            大概就這樣,其中提到了獨裁之類的玩意我就不說了。

            參考文獻


            (1] https://www.alienvault.com/open-threat-exchange/blog/cyber-espionage-campaign-against-the-uyghur-community-targeting-macosx-syst#sthash.fHOjOceQ.dpuf

            (2] https://www.alienvault.com/open-threat-exchange/blog/new-macontrol-variant-targeting-uyghur-users-the-windows-version-using-gh0s

            (3] https://www.alienvault.com/open-threat-exchange/blog/latest-adobe-pdf-exploit-used-to-target-uyghur-and-tibetan-activists

            (4] http://drops.wooyun.org/papers/42

            (5] http://zone.wooyun.org/content/16828

            (6] http://zone.wooyun.org/content/16309

            (7] https://www.alienvault.com/open-threat-exchange/blog/watering-holes-exploiting-jsonp-hijacking-to-track-users-in-china

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线