欢迎来到 无奈人生 安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

Pwn2Own华为iReader漏洞原理与利用分析

来源: 作者: 时间:2019-02-24 19:29 点击: 我要投稿

0×01 前言
这部分漏洞分析属于之前MWR InfoSecurity的研究员报告中的第三部分,同样该报告仅有漏洞的简单描述,具体的PoC也未详细给出。
相关阅读:
Pwn2Own华为HiApp漏洞原理与利用分析(上)
Pwn2Own华为HiApp漏洞原理与利用分析(下)
因此本文的目的依旧是去探索漏洞挖掘的思路,以下不代表漏洞作者思路,欢迎更好的想法,欢迎讨论。
附上2017 pwn2own mobile视频:

0×02 漏洞原理分析
同样的挖掘思路,依旧是从AndroidManifest.xml入手,寻找暴露的组件,并进行代码静态分析。
 activity android:configChanges="keyboardHidden|layoutDirection|navigation|orientation|screenLayout|screenSize|smallestScreenSize" android:exported="true" android:label=" " android:name="com.zhangyue.iReader.online.ui.ActivityWeb" android:screenOrientation="portrait">
            intent-filter>
                data android:host="com.huawei.hwireader" android:scheme="hwireader" />
                action android:name="com.huawei.hwireader.GLOBAL_SEARCH_CLICKED" />
                category android:name="android.intent.category.DEFAULT" />
                category android:name="android.intent.category.BROWSABLE" />
            intent-filter>
        activity>
切入com.zhangyue.iReader.online.ui.ActivityWebonCreate函数
  protected void onCreate(Bundle arg8) {
        ...
        this.mCoverViewManager = new OnlineCoverViewManager(((Context)this), this.k);
        this.mCoverViewManager.setOnlineActivityOperation(((IOnlineActivityOperation)this));
        this.mOnlineCoverView = this.mCoverViewManager.loadUrlOnNewCoverView("", true, this.getWebViewType());
        this.mProgressWebView = this.mOnlineCoverView.getProgressWebView();
        this.mWebView = this.mProgressWebView.getWebView();//获取webView实例类
        ...
        boolean v0_1 = v2 == null || !v2.containsKey("isload") ? true : v2.getBoolean("isload");
        String url = "";
        if(v2 != null && (v2.containsKey("url"))) {
            url = v2.getString("url"); //获取url参数的值
        }
        ...
        else if(!(this instanceof ActivityWeb)) {
            if(url != null && !url.equals("")) {
                this.c(url); // 加载url,最终调用loadRefreshUrl(String)函数
                goto label_117;
            }
            this.loadNaviURL(this.c);
            goto label_117;
        }
    }
/**
* 加载url,由参数uri控制
**/
protected void loadRefreshUrl(String arg2) {
        this.g = arg2;
        ActivityOnline.mNeedClearHistory = true;
        if(this.mWebView != null) {

[1] [2] [3] [4] [5] [6]  下一页

(责任编辑:admin)
【声明】:无奈人生安全网(http://www.wnhack.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱472701013@qq.com,我们会在最短的时间内进行处理。