iPhone蓝屏0day漏洞分析播放视频触发内核拒绝服务-360安全卫士.PDF

iPhone蓝屏0day漏洞分析播放视频触发内核拒绝服务-360安全卫士.PDF

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
iPhone蓝屏0day漏洞分析播放视频触发内核拒绝服务-360安全卫士

原原文文地地址址:/papers/7435 Proteas of 360 NirvanTeam 0x00 前前言言 近期发现有人会在微信群中分享视频链接,当使用苹果设 的用户点击这个视频链接播放视频时会造成苹果设 重启。发现这个问题后,[email protected]�析,在非越狱iPhone设 iOS 8.0.2、 iOS 8.4、iOS 8.4. Beta 、iOS 9 Beta 3 系统上进行测试,均导致设 蓝屏并重启,判断为0Day所致,决定详细分析导致iPhone蓝屏的原因。 通过dump arm64位内核及Panic Log详细分析,确定崩溃发生在内核扩展 AppleVXD393.kext 中。该内核扩展主要用来解码视频帧,导致漏洞利用的原因为:没有校验指针的合法性,对 空指针进行解引用所致;此外在分析过程中,我们发现了该扩展模块还存在另外一个漏洞利用的0Day,已经提交苹果官方等待确认。 为了方便测试,我们首先编写了一个简单 App,目的是便于测试、触发系统崩溃,触发后导致蓝屏重启如下图 (视频演示:/v_show/id_XMTI5MTgzNjc2NA),接着为 了定位内核崩溃发生的模块及具体代码,下文将做详细分析。 0x01 漏漏洞洞影影响响 . 该DoS影响非越狱设 ,综合手中的测试设 及逆向分析,可影响iOS 8 以上的所有64位设 :iPhone 5s,iPhone 6, iPhone 6 Plus,iPad Air, iPad mini 等。 2. 如果利用网站或者借助某个平台,可以造成大规模的拒绝服务。 0x02 编编写写辅辅助助崩崩溃溃的的程程序序 由于在分析的过程中我们很可能需要多次造成内核崩溃,如果每次都从微信中触发崩溃会很麻烦,也很不合理,因此我们需要先获取视频,然后用自己的程序来播放视频。 这个程序很简单,运行起来的界面如下图: 只要点击“Play Video”就会调起播放器播放相应视频,进而引起系统崩溃。这里遇到个小问题,之前播放视频都是使用 MPMoviePlayerController,但是 MPMoviePlayerController 在播放有 问题的视频时一直处于加载状态,于是换 AVPlayer 来播放视频,为了方便大家构建 Demo 进行测试,给出 “Play Video”的相应代码: #!java @implementation ViewController // 配置界面 - (void)viewDidLoad { [super viewDidLoad] self.view.backgroundColor = [UIColor lightGrayColor] UIButton *playBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect] playBtn.frame = CGRectMake (40.0f, 40.0f, 200.0f, 48.0f) playBtn.center = self.view.center playBtn.backgroundColor = [UIColor darkGrayColor] [playBtn setTitle:@Play Video forState:UIControlStateNormal] [playBtn setTitle:@Play Video forState:UIControlStateHighlighted] playBtn.titleLabel.font = [UIFont systemFontOfSize:32.0f] [playBtn addTarget:self action:@selector(onPlayButtonClicked:) forControlEvents:UIControlEventTouchUpInside] [self.view addSubview:playBtn] } // 防止屏幕旋转时界面错乱,影响心情 - (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskPortrait } // 响应按钮点击,调起播放器 - (void)onPlayButtonClicked:(UIButton *)aSender { NSString *videoPath = [[NSBundle mainB

文档评论(0)

sunshaoying + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档