精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Hacking Team安卓瀏覽器攻擊過程中的漏洞分析Stage0

安全 漏洞
Hacking team今年爆出了針對android4.0.x-4.3.x android瀏覽器的漏洞攻擊利用代碼。該漏洞攻擊代碼,通過連續利用多個瀏覽器與內核漏洞,完成通過javascript向虛擬內存寫數據,執行代碼,提升至root權限,并最終達到向目標手機中植入惡意程序的目的。

一、漏洞簡介

Hacking team今年爆出了針對android4.0.x-4.3.x android瀏覽器的漏洞攻擊利用代碼。該漏洞攻擊代碼,通過連續利用多個瀏覽器與內核漏洞,完成通過javascript向虛擬內存寫數據,執行代碼,提升至root權限,并最終達到向目標手機中植入惡意程序的目的。

該利用過程分為5個復雜的Stage,本文首先分析了第1個Stage,即Stage0。 攻擊代碼的Stage0階段通過一個0Day地址泄露漏洞,為后續數據填充操作完成定位地址定位的任務。此漏洞位于android-src\external\libxslt模塊中。

二、漏洞詳細信息

概述

Stage0利用的0Day漏洞原理如下:

該漏洞屬于未經正確性檢查,就直接錯誤地進行強制類型轉換,從而導致一個用于內存讀(實際用于字符串比較)的指針可以被操控。漏洞利用的思路是:通過在JS分配的大片內存空間中,填充字符串:http://www/w3.org/1999/XSL/Transform,程序的后續邏輯會將該字符串會與那個可控內存指針所指向的字符串進行比較,一旦字符串對比不成功,則javascript的一個對象會記錄下“Error”,由于指針所指向的地址是可控制的,一旦發現 “Error”,就重新調整地址,直到沒有發生Error,這樣就得到了javascript開辟的可控空間的內存地址信息。

1. 數據結構背景

圖1展示了hacking team所使用的觸發漏洞代碼: 

 

圖1 漏洞觸發代碼與其內存結構

在瀏覽器中,我們可以使用javascript引用如圖1所示的xsl文件,通過此文件,即可引發stage0所使用的漏洞。圖1中的xsl語句,在libxml2解析后,會形成如圖1中右圖所示結構。其中,xsl描述的cdent節點,即為觸發漏洞的ENTITY類型節點。

此漏洞發生在瀏覽器引擎對xsl文件的解析過程中。因此,我們先簡述一下圖1中代碼,與右圖節點的對應關系。右圖的myDoc節點為虛的根節點,在左圖xsl描述中并沒有對應。xsl描述的最外層adoc和ata節點,同為根節點的下的一級子節點,由于adoc是第一個子節點,被myDoc的數據結構中得children指針指向,ata則被adoc的next指針指向。同理,x節點,cdent節點和y節點,同為adoc的子節點一級,形成如上圖所示結構。#p#

2. 漏洞成因

程序出現異常的根本原因是由于libxslt在對圖1中的cdent(xmlEntity類型)節點進行操作時,并未對此節點的類型進行比較,導致對cdent節點進行了不正確的類型轉換(轉換為xmlNode類型),并對轉換后的節點進行了非法操作。libxslt(android瀏覽器在對xsl進行解析時所使用的模塊)在對xsl操作的過程中,會對大部分節點的namespace進行比較,判斷節點是否為一個合法的xsl節點。

但當節點類型為xmlEntity類型時,由于xmlEntity沒有ns(用來比較namespace信息的數據結構)字段,所以不對xmlEntity類型進行比較namespace操作(xmlEntity類型、xmlNode類型的詳細信息請看圖5)。而libxslt在判斷節點類型是否為xmlEntity時,libxslt的判斷并不完全,最終導致xmlEntity可被轉換為xmlNode進行操作。從而引發程序崩潰。 

 

圖2 未對所有節點的類型進行判斷

觸發崩潰的第一步,是由于對節點類型的比較不完全導致的。libxslt在成功構建節點樹(如圖2中右圖)后,會循環對myDoc的子節點進行namespace比較操作,圖2中左側代碼,是在循環中當對當前節點的所有操作完成時,將循環操作中的節點指針指向下一個需要操作的節點的代碼。根據圖2中第4967行的代碼,我們可以發現,libxslt是希望當目標節點子節點或next節點的類型不為xmlEntity類型時,將目標節點子節點或next節點賦值給cur指針,再由cur指針進入下一次循環。但是,libxslt只對cur指針的第一個子節點進行了數據類型的比較操作,并沒有對cur指針的next節點進行數據類型的比較。而在我們構建的節點結構中,cdent(xmlEntity類型)節點,正是被x的next指針指向的,導致cdent節點不正確的進入了循環。 

圖3 對namespace進行比較的函數

觸發崩潰的第二步,是xmlEntity節點被轉換為xmlNode節點。圖3為第一步中所說的循環的開始位置(圖3代碼的4893行),我們可以清晰的看到第一步所用的cur指針的數據類型為xmlNode類型。而第一步的xmlEntity類型被賦值給了xmlNode類型的指針,這就導致了類型轉換的錯誤。 

 

圖4 IS_XSLT_ELEM宏的定義

觸發崩潰的第三步,是對不正確的數據類型進行了非法操作。圖4為圖3中IS_XSLT_ELEM宏的展開。IS_XSLT_ELEM宏的操作是比較節點的namespace,判斷xmlNode結構體中的ns字段(此字段指向一個xmlNs的數據類型)中的href字段所指向的地址是否存儲了字符串“http://www.w3.org/1999/XSL/Transform”。 

 

圖5 相互轉換的兩種數據類型

當IS_XSLT_ELEM宏的輸入參數為一個xmlEntity類型時,宏就會將orig字符串當作xmlNs類型的數據結構來操作。由于程序中的orig字符串存儲的是xmlEntity節點內的字符串信息,所以在觸發漏洞的代碼這個例子中,此處存儲的字符串為:

'XX';

toascii(addr); // ns->href

toascii(addr); // ns->prefix

'XXXX' // ns->_private

'XXXX' // ns->context

' xmlns:xsl=\'http://www.w3.org/1999/XSL/Transform\' terminate=\'yes\'/>

而在宏中,會把這串字符串當作xmlNs類型來操作。 

 

圖6 xmlNs的數據結構

因此可以通過此漏洞達到地址泄漏的目的。可以注意到,當宏將字符串當作xmlNs節點來處理時,代碼中轉換為ascii碼的addr就可以被當作比較的字符串指針(href)來處理(詳細信息見圖4)所以我們可以將任何可以轉化為ascii碼的地址寫入href指針,從而讓這些指針所指向的字符串與“http://www.w3.org/1999/XSL/Transform”進行比較。

如果比較結果為真,則繼續后續操作,否則,libxslt將返回一個可被javascript接收的error信息。攻擊者通過接受的error信息,就可判定輸入的地址是否有指定的字符串,再結合大量的數據填充,就可以打到地址泄漏的目的。(詳見“三、利用方式”)#p#

3. 調試過程

調試過程在nexus 7+android4.3上進行。

由于在webkit解析xsl文件時,如果標簽為 

 

圖7 程序在xmlParseEntityDecl停下時的狀態

myDoc節點:0x400d9768最終程序崩潰時,調用棧中會顯示是由于處理這個對象而導致崩潰。

Input:0x59988c18通過查看input信息,可知對xsl對象所解析到那個節點。

查看input信息: 

 

圖8 Input中的信息 

 

圖9 程序的解析狀態

如圖9顯示,正在解析!ENTITY節點。(base表示所解析的字符串,cur表示當前解析到的位置。)

函數entityDecl會創建引發錯誤的ENTITY對象: 

 

圖10 xmlEntity節點的創建(此時節點的數據類型為xmlNode)

如圖10中所示,新生成的next節點,為通過entityDecl函數所得到的entity節點(type=0×11,0×11表示為entity節點,為圖2中XML_ENTITY_DECL的實際值)。此時此節點的compression字段(在xmlEntity中此字段為orig字段)為0。

函數xmlParseEntityValue會將節點中的字符串存儲于orig字符串指針中。 

 

圖11 獲取xmlEntity節點中的字符串信息

如圖11所示,程序將從!ENTITY節點中解析出的字符串傳給了orig。(input中的cur(當前值)已向后移動,而之前的部分存入了orig中)

之后,函數會將orig賦值給xmlEntity對象的orig。 

 

圖12 將字符串存入xmlEntity的orig字段中

函數通過cur對目標xmlEntity節點的orig字段進行賦值。 

 

圖13 將之前出問題的節點轉換為xmlEntity類型

如圖13所示,被賦值的cur正是之前創建的xmlEntity節點。

而當程序運行到cur->orig=orig時,目標位置指針被重置: 

 

圖14 字符串的傳入

如圖14所示,此時的compission字段被置為orig指針,存儲著可控的對象。而當對此節點進行namespace比較時,節點會類型轉換為xmlNode類型,而xmlEntity->orig字符串字段則會被當成xmlNs類型來解釋,最終達到任意地址比較的操作。 

 

圖15 程序崩潰時的狀態

如圖15所示,程序最終在字符串比較時發生段錯誤,此時的棧中xsltParseTemplateContext的第二個參數,正是為我們在xmlParseEntityDecl停下時,myDoc所指向的地址。#p#

三、利用方式

1.向內存中填充330頁的寫有namespace信息的頁。通過大量的數據填充,在觸發漏洞時就有更大的可能匹配成功,只有匹配成功,才能進一步的地址泄漏。如果觸發漏洞時的addr值指向未被分配的頁,則會出現段錯誤導致程序崩潰。 

 

圖16 內存填充 

 

圖17 填充namespace信息

2.通過漏洞,可以在xsl對象生成時,修改href指針的值(詳見圖6),將地址改為一個在填充過程中,有很大幾率會被填充到的地址。 

 

圖18 漏洞利用代碼1 

 

圖19 漏洞利用代碼2

3.函數內部會自動對xsl對象的namespace指針進行匹配,以確定xsl對象是否為一個合法的xsl元素。如果為非法元素,則會被javascript捕獲到異常。 

 

圖20 javascript可獲取的異常狀態

4.若進入if,則字符串匹配成功,之后進入二分法查找具體頁的過程,addr為觸發漏洞時所寫入的地址。若進入else,將猜測的地址addr進行變化,再次進行比較過程(此函數名即為find_spray_addr進入else后,則會迭代查找地址)。

5.二分法查找:

a.將填充的330頁數據的前一半(165頁)數據進行清空。

b.再次調用漏洞,判斷是否發生異常,若異常,則addr所指向的地址在前一半填充的頁中。否則,addr所指向的地址在后一半填充的頁中。

c.繼續對前一半或后一半進行a、b兩步,直到僅剩一頁時,則可判定addr指向的是此頁中的地址。 

 

圖21 二分法查找addr所在頁的代碼1

 

 

圖22 二分法查找addr所在頁的代碼2

6.通過獲取頁信息,即可得到一個泄露的內存地址addr以及周圍4mb的可控內存,達到本階段的漏洞利用目的。

責任編輯:藍雨淚 來源: FreeBuf
相關推薦

2015-07-08 13:52:18

2015-07-08 10:35:17

2015-07-08 13:36:24

2016-05-03 09:27:21

2024-11-27 16:39:54

2015-07-14 10:53:19

Hacking Tea0Day漏洞

2015-07-14 11:00:16

2015-07-15 12:50:27

微軟IE11

2010-01-18 10:34:59

2015-07-14 10:33:19

2011-12-02 15:20:33

瀏覽器歐朋瀏覽器QQ瀏覽器

2015-07-08 11:06:59

2021-06-04 15:55:32

瀏覽器UC瀏覽器安卓手機

2020-10-29 09:45:58

零日漏洞Chrome攻擊

2014-09-02 12:52:38

手機漏洞安卓手機

2013-11-22 15:05:13

DDoSDDoS攻擊

2019-12-25 09:00:00

JavascriptWeb前端

2019-12-27 16:10:53

前端javascriptnode.js

2016-09-27 15:51:57

2015-07-30 13:56:33

Flash漏洞漏洞利用PoisonIvy
點贊
收藏

51CTO技術棧公眾號

国产成人av无码精品| 热这里只有精品| 亚洲国产精品无码久久久| 欧美精品尤物在线观看| 欧美精品久久久久久久多人混战 | av高清一区二区| 亚洲精品影视| 日韩视频第一页| 欧美精品黑人猛交高潮| 9999在线精品视频| 欧美日韩中文字幕在线视频| 一区二区在线高清视频| 欧美天堂在线视频| 激情六月婷婷综合| 欧美一级淫片aaaaaaa视频| 三级黄色录像视频| 国产欧美日韩一区二区三区四区| 欧美一区二区三区白人| 在线免费视频a| 国产网站在线| 亚洲精品一二三| 日本一区二区三区免费观看| 姝姝窝人体www聚色窝| 久久99精品一区二区三区三区| 91精品国产91久久| 久久精品免费av| 外国成人激情视频| 一区二区三区四区在线观看视频| 屁屁影院国产第一页| 精品视频一区二区三区| 日本韩国视频一区二区| 成人免费观看cn| 性xxxfreexxxx性欧美| 中文字幕+乱码+中文字幕一区| 九九九九久久久久| 亚洲成人中文字幕在线| 激情久久五月天| 国产精品视频一区二区高潮| 性色av免费观看| 亚洲欧美网站| 97人人模人人爽人人喊中文字| 中文字幕影音先锋| 综合在线视频| 久久综合88中文色鬼| 亚洲毛片亚洲毛片亚洲毛片| 国产欧美久久一区二区三区| 日韩国产欧美精品一区二区三区| 国产女人18毛片水真多18| 日韩高清一区| 日韩美女视频在线| 好吊操视频这里只有精品| 电影中文字幕一区二区| 91精品国产福利| 超级砰砰砰97免费观看最新一期 | 国产精品久久免费观看| 中文有码一区| 伊人久久久久久久久久久久久| 国产精品高清无码在线观看| 国产免费久久| 精品国产拍在线观看| 天天看天天摸天天操| 欧美99久久| 欧美高清无遮挡| 国产精品7777| 久久精品欧洲| 国产主播在线一区| 国产三级精品在线观看| 床上的激情91.| 精品网站在线看| 都市激情一区| 亚洲色图在线播放| 日本久久久网站| 日韩电影毛片| 欧美三区在线观看| 天天av天天操| 嫩草国产精品入口| 亚洲午夜av久久乱码| 激情高潮到大叫狂喷水| 欧美激情偷拍| 欧美又大粗又爽又黄大片视频| 欧美一级做a爰片免费视频| 麻豆91小视频| 国产精品视频500部| 美女毛片在线看| 国产精品国产三级国产有无不卡| 六月婷婷激情网| 亚洲最大网站| 日韩一区二区电影在线| 最新在线黄色网址| 成人羞羞动漫| 欧美精品video| 在线永久看片免费的视频| 久久国产精品99久久久久久老狼| 91免费在线观看网站| 青草久久伊人| 亚洲品质自拍视频| 91传媒久久久| 91精品一区| 亚洲欧美999| 私库av在线播放| 日韩精品一卡二卡三卡四卡无卡| 亚洲中国色老太| 国产精品四虎| 天天色综合天天| 亚洲妇熟xx妇色黄蜜桃| 亚洲深夜福利在线观看| 操91在线视频| 依依成人在线视频| 99久久99精品久久久久久 | 欧美激情黑人| 精品国产福利在线| 日本成人在线免费观看| 精品国产一区二区三区小蝌蚪 | 中文字幕这里只有精品| 日韩精品在线一区二区| 黄大色黄女片18免费| 国产日韩欧美三区| 成人一区二区在线| 黄色网在线免费看| 欧美中文字幕一区| 日本少妇色视频| 在线不卡欧美| 999视频在线观看| 免费a在线看| 欧美在线视频你懂得| 欧美老熟妇乱大交xxxxx| 激情五月***国产精品| 91天堂在线视频| 日本亚洲精品| 欧美日韩黄色影视| 在哪里可以看毛片| 久久不射网站| 久久资源亚洲| 蜜桃麻豆影像在线观看| 精品国产乱码久久久久久浪潮| 日韩精品亚洲元码| 中文字幕视频在线免费观看| 少妇久久久久| 国内精品400部情侣激情| 国产乱淫片视频| 亚洲日本护士毛茸茸| 亚洲国产日韩欧美在线观看| 精品国产美女| 国产成人精品一区二区三区| 你懂得网站在线| 欧美日韩亚洲精品一区二区三区 | 99精品国产一区二区三区不卡 | 日韩精品电影一区亚洲| 免费电影一区| xx欧美视频| 国产亚洲a∨片在线观看| 国产无遮挡呻吟娇喘视频| 99国产麻豆精品| 久草资源站在线观看| 图片婷婷一区| 国产极品jizzhd欧美| avtt亚洲| 日韩视频在线永久播放| 黄色小视频在线免费看| 成人av免费网站| 黄色免费视频大全| 视频国产一区| 国产免费成人av| 主播国产精品| 亚洲精品福利视频| 国产真人无遮挡作爱免费视频| 国产欧美久久久精品影院| 性生活免费在线观看| 欧美一区免费| 久久成人资源| 国产成人精品一区二区三区在线 | 日韩欧美自拍偷拍| 日韩精品一区二区不卡| 久久久久一区二区三区四区| 中文字幕永久视频| 亚洲啊v在线观看| 国产日韩欧美综合精品 | 91久久精品一区| av手机在线观看| 中文字幕日韩精品在线| 国产极品999| 欧美视频一二三| 日韩在线视频免费看| 国产91高潮流白浆在线麻豆| 国产超级av在线| 亚洲欧美网站在线观看| 国产精品毛片一区视频| 嫩草伊人久久精品少妇av杨幂| 久久久精品国产| 色视频免费在线观看| 欧美妇女性影城| 全部毛片永久免费看| 《视频一区视频二区| 六十路息与子猛烈交尾| 久久爱www久久做| 99在线精品免费视频| 手机在线一区二区三区| 国产美女在线精品免费观看| 97欧美成人| 97视频在线观看免费| 黄色免费在线观看| 亚洲欧美国产视频| 不卡av中文字幕| 欧美午夜在线观看| 日韩免费不卡视频| 亚洲天堂精品在线观看| 亚洲永久无码7777kkk| 国产精品综合在线视频| 婷婷丁香激情网| 亚洲精品欧洲| 久久最新免费视频| 精品国产乱码久久久久久果冻传媒 | 久久精品91久久香蕉加勒比| 青青草超碰在线| 337p日本欧洲亚洲大胆精品| 国产免费黄色录像| 欧美性videosxxxxx| 天天操天天爽天天干| 一区二区三区中文字幕在线观看| 成人黄色a级片| 成人爽a毛片一区二区免费| 永久免费的av网站| 丝袜诱惑制服诱惑色一区在线观看| 亚洲爆乳无码精品aaa片蜜桃| 日韩免费在线| 色中色综合成人| 天堂日韩电影| 久久久综合香蕉尹人综合网| 国产精品xxxav免费视频| 91黄在线观看| 欧美国产中文高清| 91色p视频在线| 亚洲人成网站在线在线观看| 国产精品一二区| 久久人体av| 国产拍精品一二三| 欧美大片网站| 成人免费视频a| 日韩av黄色| 成人在线视频网站| av一级久久| 亚洲中国色老太| 成人av地址| 国产日韩欧美一区二区| 国产在线观看一区二区三区| 欧美高清影院| 5566av亚洲| 成人在线超碰| 久久国产精品-国产精品| 思热99re视热频这里只精品| 久久久精彩视频| 国产日韩欧美一区二区三区| 日本精品一区二区三区不卡无字幕| 亚洲精品小区久久久久久| 青娱乐一区二区| 久久国产成人精品| 看一级黄色录像| 国产精品videosex极品| 久久久久久久久久网| 午夜在线精品偷拍| 99视频在线免费| 国产一区二区精品久久| 黑人无套内谢中国美女| 成人高清伦理免费影院在线观看| 国产又黄又粗又猛又爽的视频 | 久草手机视频在线观看| 亚洲精品成人少妇| 久久夜靖品2区| 欧美午夜一区二区| 国产情侣自拍小视频| 精品国产sm最大网站免费看| 日本中文字幕一区二区有码在线| 亚洲网站在线观看| 91麻豆一二三四在线| 91精品国产沙发| 久久影视精品| 国产精品乱码视频| 成人影院在线| 国产精品69久久久| 秋霞成人午夜伦在线观看| 欧美精品色视频| 99riav久久精品riav| 女人裸体性做爰全过| 一区二区三区日本| 国产亚洲欧美日韩高清| 欧美一级高清大全免费观看| 亚洲欧美综合一区二区| 日韩午夜在线视频| 国产丝袜精品丝袜| 国产精品色悠悠| 免费成人三级| 黑人巨大国产9丨视频| 男女精品网站| 少妇搡bbbb搡bbb搡打电话| 国产日本欧洲亚洲| 精品在线免费观看视频| 欧美三级视频在线播放| 天天摸天天碰天天爽天天弄| 日韩视频免费在线| 成人影院av| 国产精品一区在线观看| 久久综合成人| 91淫黄看大片| www.日本不卡| 成人免费毛片东京热| 欧美日韩亚洲丝袜制服| 亚洲AV成人无码一二三区在线| 超在线视频97| 狂野欧美性猛交xxxx| 国产麻豆日韩| 欧美成人有码| 日本美女视频一区| 久久精品网站免费观看| 日韩精品视频免费看| 日韩精品一区二区三区中文精品| 午夜在线视频| 国产精品成人av性教育| 日韩精品导航| 国产精品久久中文字幕| 国产成人精品在线看| 97精品在线播放| 欧美美女直播网站| 国产原创av在线| 日韩av免费在线播放| 欧美一区自拍| av免费观看网| 成人精品视频一区| 久久亚洲AV无码| 欧美xxxx老人做受| av大大超碰在线| 亚洲一区二区三区视频播放| 99久久亚洲精品蜜臀| 91制片厂毛片| 亚洲国产成人一区二区三区| 狠狠躁夜夜躁人人爽视频| 精品调教chinesegay| 深夜福利视频一区二区| 精品久久久久久乱码天堂| 亚洲成人原创| 91精品又粗又猛又爽| 亚洲午夜私人影院| 蜜桃久久一区二区三区| 欧美激情va永久在线播放| 在线日韩成人| 日韩黄色短视频| 91亚洲精品久久久蜜桃网站| aaa人片在线| 亚洲毛片在线观看| 欧美专区福利免费| 日韩一区二区电影在线观看| 久久精品国产精品亚洲红杏| 中文字幕美女视频| 欧美一区二区三区公司| 日韩电影免费观看| 国产一区二区三区高清| 亚洲综合99| 网爆门在线观看| 69精品人人人人| 欧美巨大xxxx做受沙滩| 激情五月综合色婷婷一区二区| 国产一区二区高清| 欧美丰满美乳xxⅹ高潮www| 欧美精品丝袜中出| 在线观看中文| 久久久99国产精品免费| 毛片一区二区三区| 我家有个日本女人| 亚洲精品成人久久| 国产资源一区| 欧美a级免费视频| 久久综合成人精品亚洲另类欧美 | 日韩精品免费视频| 日韩美女在线看免费观看| 中文字幕色一区二区| 国产不卡在线视频| 国产suv精品一区二区33| 中文字幕亚洲欧美| 国产欧美三级电影| 五月天婷婷激情视频| 亚洲精品综合在线| 日本免费不卡| 亚洲wwwav| 午夜亚洲福利在线老司机| 亚洲少妇xxx| 亚洲激情电影中文字幕| 国产欧美在线观看免费| 国产美女在线一区| 国产三区在线成人av| 国产精品无码在线播放| 26uuu日韩精品一区二区| 97视频精品| 亚洲观看黄色网| 欧美日韩成人在线| 蜜桃视频在线观看播放| 一区二区三区欧美在线| 不卡的电视剧免费网站有什么| 在线观看亚洲一区二区| 51ⅴ精品国产91久久久久久| 婷婷久久国产对白刺激五月99| 国产伦精品一区二区三区妓女 |