本帖最后由 公益 于 2015-1-7 18:14 编辑

作者:360捉虫猎手研究员 0xr0ot & Xbalien

“超级拒绝服务漏洞”是360安全研究人员近期发现的一个安卓通用型拒绝服务漏洞,恶意攻击者可能利用此漏洞让手机中的任意应用崩溃无法正常工作,几乎影响目前市面上所有的安卓APP应用。对此360捉虫猎手开发了一个自动化的检测工具,以便开发者自查修复。

“超级拒绝服务漏洞”检测工具:http://appscan.360.cn/crashcheck/

漏洞分析

0xr0ot和Xbalien交流所有可能导致应用拒绝服务的异常类型时,发现了一处通用的本地拒绝服务漏洞。该通用型本地拒绝服务可以造成大面积的app拒绝服务。

针对序列化对象而出现的拒绝服务主要是由于应用中使用了getSerializableExtra() 的API,由于应用开发者没有对传入的数据做异常判断,恶意应用可以通过传入畸形数据,导致应用本地拒绝服务。

漏洞应用代码片段:

比如XXX处传入BigInteger.valueOf(1)极有可能发生转型异常错误java.lang.ClassCastException。

但后来交流中发现,当传入一个自定义的序列化对象Serializable或getParcelable对象时

,接收Intent的目标组件在getSerializableExtra()、getParcelable()等会抛出类未定义的异常java.lang.NoClassDefFoundError。这是因为,当你给漏洞应用传入一个应用本身并没有的序列化类对象,在应用上下文中肯定是找不到这个类的。

自定义的序列化类很简单:

对应的攻击代码中XXX处传入new DataSchema(),我们发现传入的key不管是否与漏洞应用相同,都会抛出类未定义的异常。

随着测试的深入,我们通过logcat发现,在错误日志里不一定是getSerializableExtra()、getParcelable()导致的。然后我们就延伸了下,试着向getXXXExtra()传入我们自定义的序列化类对象,发现都会抛出类未定义的异常。

测试app代码片段:

接着我们测试了市面上大量主流应用,涵盖BAT等。发现这种方法可以通杀。我们开始觉得这个是android本身的问题,开始翻源代码。

最后当解析到Serializable对象时,由于加载不到类,抛出异常

但是回头想想,谷歌肯定不是认为这是android的漏洞,开发者只要加个try catch 捕获异常就可以了。

漏洞修复:

不管是get什么extra,只要是getXXXExtra(),加上try catch捕获异常即可。

漏洞检测:

为了方便开发者测试,360捉虫猎手发布了一个自动化的超级拒绝服务漏洞检测工具。下载地址:http://appscan.360.cn/crashcheck/

开发者可以通过以下方法进行排查:

1.监控java.lang.RuntimeException的错误日志

在adb shell下敲入

adb shell logcat | grep java.lang.RuntimeException

使用我们的检测工具测试各个组件,如果发现如下类型的报错日志,即存在超级拒绝服务漏洞

java.lang.RuntimeException: Parcelable encounteredClassNotFoundException reading a Serializable object (name = com.qihoo.intentfuzztester.extradata.DataSchema)

2. 一段真实存在漏洞的代码片段

虽然getExtras只接受Int类型数据,但putExtra打入一个序列化对象Serializable,程序仍然会崩溃,原因是getInt在底层仍然会对数据进行unparcel()的预处理,具体参考之前的漏洞分析。

参考:

http://androidxref.com/4.2.2_r1/ ... roid/os/Parcel.java

android漏洞检测工具,安卓“超级拒绝服务漏洞”分析及自动检测工具相关推荐

  1. android漏洞 锁屏,安卓再曝漏洞:谁都能轻松绕过锁屏密码

    据<连线>杂志网络版报道,如果你以为设置几位数字作为锁屏密码就很安全,那么就太"轻敌"了.其实任何人都能在无需技巧和复杂操作的情况下,轻松绕过锁屏密码进入设备. 安卓再 ...

  2. android平台自动签名工具,功能超级强大的AI驱动自动一键安卓抠图工具,人物商品衣图章签名...

    原标题:功能超级强大的AI驱动自动一键安卓抠图工具,人物商品衣图章签名 抠图是我们日常工作中经常遇到的一项工作,比方说扣个签名,扣个人像,或者给产品扣一张白底图,但是很多软件我们试过以后,发现都不太好 ...

  3. struts2漏洞监测_CVE20190233: S2060 拒绝服务漏洞分析

    更多全球网络安全资讯尽在邑安全 0x01 漏洞简述 2020年8月11日,360CERT监测发现Apache官方发布了S2-060的风险通告,该漏洞编号为CVE-2019-0233,漏洞等级:中危.漏 ...

  4. linux ntp 'ntp_request.c'远程拒绝服务漏洞,NTP 'ntp_request.c'远程拒绝服务漏洞

    NTP 'ntp_request.c'远程拒绝服务漏洞 发布日期:2013-12-30 更新日期:2014-01-09 受影响系统: NTP NTP 描述: --------------------- ...

  5. 最新系统漏洞--多款Cisco产品拒绝服务漏洞

    最新系统漏洞2022年3月22日 受影响系统: Cisco TelePresence Collaboration Endpoint (CE) Software < 10.7.2 Cisco Ro ...

  6. 推荐的截图工具,超级好用的几款小工具

    Snippaste:主要用于贴图 Faststone capture:小巧.全能,截图.录屏首选 Fireshot:网页留存好帮手 Snippaste:贴图神器 Snipaste 是一个免费.纯净.简 ...

  7. 【安全漏洞】CVE-2020-26567 DSR-250N 远程拒绝服务漏洞分析

    漏洞信息 漏洞编号:CVE-2020-26567 漏洞详情:在路由器DSR-250N.DSR-500N路由器的固件版本3.17之前的固件中存在一个upgradeStatusReboot.cgi文件,未 ...

  8. python爬虫图片工具安卓版下载_python图片爬虫(图片爬虫工具) 1.1绿色版

    python图片爬虫(图片爬虫工具)是一款专门为互联.it行业的小伙伴们打造的爬虫工具,可以帮大家对软件进行优化.seo的人一定会用的上哦,有兴趣的赶紧下载了哦!python图片爬虫代码如下: #-* ...

  9. android拒绝服务教程,[转帖][转帖]通用型安卓拒绝服务漏洞报告检测工具

    作者:360捉虫猎手研究员 @0xr0ot & @Xbalien "超级拒绝服务漏洞"是近期发现的一个安卓通用型拒绝服务漏洞,恶意攻击者可能利用此漏洞让手机中的任意应用崩溃 ...

最新文章

  1. python 3.9 新特性 简介
  2. python小游戏源码-python 像素小鸟小游戏源码(flappybird)
  3. Spring Security构建Rest服务-0100-前言
  4. 编写高效的PyTorch代码技巧(下)
  5. java接口自动化(五) - 企业级代码管理工具Git的配置
  6. python导入mat文件_python读取并写入mat文件的方法
  7. vue怎么编辑已有视频_vue如何编辑视频 vue编辑视频方法
  8. SmartAdmin开源简单的门户网站管理系统
  9. ubuntu libxml2 使用
  10. 电压比较器工作原理 -----运放入门,重点!!!
  11. 【Windows 10 更新失败】Windows10 升级提示错误代码:0x80070020解决方案
  12. ubuntu18.04装coturn
  13. python合并音频Couldn‘t find ffprobe or avprobe解决办法
  14. Java程序性能优化-概述
  15. HTTPS网站提示“此网站无法提供安全连接”
  16. 【matlab】spm数据处理
  17. CGI跟FASTCGI区别
  18. ip地址掩码和位数对应关系表、子网掩码、网络地址、主机地址-yellowcong
  19. html常用特效,网页常用特效整理:初级篇-网页设计,HTML/CSS
  20. 网易服务器配置验证失败,验证失败 连接到icloud时出错怎么解决?

热门文章

  1. python数据解析——xpath爬取文字和图片
  2. JavaScript之ECMAScript-正则表达式
  3. 撒旦的诡计------网络游戏
  4. 隧道锚杆(一键生成)
  5. [1196]Android逆向工具【反射大师】脱壳实战
  6. 深度学习神经网络的部署
  7. 可视化排班管理_排班系统的原理与应用
  8. pycharm2017.3破解码
  9. [Win7技巧] 用命令行整理磁盘碎片
  10. Android 蓝牙Wifi配网