设为首页收藏本站我的广告

运维网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
总共321条微博

每日一博

查看: 417|回复: 0

【站长推荐】Hacking Team安卓浏览器攻击过程中的漏洞分析Stage0(1)【顶】

[复制链接]

该用户从未签到

ywjack 发表于 2015-10-31 14:16:31 | 显示全部楼层 |阅读模式
【站长推荐】<p>一、漏洞简介
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类型节点。
<p>此漏洞发生在浏览器引擎对xsl文件的解析过程中。因此,我们先简述一下图1中代码,与右图节点的对应关系。右图的myDoc节点为虚的根节点,在左图xsl描述中并没有对应。xsl描述的最外层adoc和ata节点,同为根节点的下的一级子节点,由于adoc是第一个子节点,被myDoc的数据结构中得children指针指向,ata则被adoc的next指针指向。同理,x节点,cdent节点和y节点,同为adoc的子节点一级,形成如上图所示结构。 1 2 3 4 下一页>>查看全文 内容导航
运维网 感谢您的阅读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|申请友链|sitemap|手机版|小黑屋|Archiver|运维网 ( 京ICP备16008201号  

GMT+8, 2016-12-5 12:30 , Processed in 0.062654 second(s), 34 queries , Xcache On.

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表